电脑中的数据都是以补码的形式存在的,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,纯二进制的表现
以上为个人学习笔记,不具备参考价值。如有错误请指正