关于C语言中的数据类型

电脑中的数据都是以补码的形式存在的,char的内存为一个字节,也就是八个比特位,

当我们用char类型表示255的时候,直接输出会发现,输出的数据为-1,这是因为,255的二进制为11111111,这已经写满了char的内存

11111111是以补码的形式存在当我们把他转换为反码就得出11111110,在转换为原码,也就是纯二进制数据,1000 0001,由于最高位是1,它是负数,后七位二进制数据的绝对值为1,所以char=255,才会显示-1;

int类型的数据内存为4个字节,32个比特位,对于它来说,255只是占据了末8位,以原码的表示则为00000000 00000000 00000000 11111111,至于他在计算机以补码的形式,正数的补码与原码一致。

如果我们想让char也能输出255的数字的话,我们可以用unsigned

unsigned的意思是说,这个整数不以补码的形式来表现,这个整数没有负数部分。

当我们在char a=255的前面加上unsigned,就能让他直接输出数字了

unsigned的意思是无符号的,也就是不表示任何符号,11111111也就变成了255,纯二进制的表现

以上为个人学习笔记,不具备参考价值。如有错误请指正

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值