比如char a = 55;
55转为二进制 110111
char类型占用1字节 = 8位
内存中表示为 0011 0111
后面的以此类推
这个就是考验数据类型的大小和取值范围啊,然后转成二进制。比如char占一个字节,8比特,取值[-128,127] ,那么55就是 0011 0111,(55转2进制是110111,但是占据8个字节,所以前面要补0)
-55需要用补码表示:1100 1001 (计算机内存中负数全部用的补码表示)
超过正数127的时候,根据(char )128 =-128,(char)129=(129-256)=-127可知道,2000%256=208>127, ==》 char(208-256)=-48(这部分不懂自己去查下吧),然后-48用补码表示:1101 0000
下面的都一样,只不过无符号的数是全部要转成正数的。是在不知道就上机,比如上面的char s=2000;printf("%d" ,(int)s);这么样子得出结果,再进行进制转换。需要注意的是 short2字节,int是4个字节,long是8个字节。