如果把-129存进char变量里,打印出来的就是127
char a=-129;
printf("%d",a) ; 会输入多少?? 结果为127 ,为什么呢?
-129在补码为10 0111 1111 只取后八位存储,即 0111 111 这个值刚好是127了,
-128的补码是1 1000 0000(只取八位) -1的补码为1111 1111
1 1000 0000 ------------------------------ -128
1111 1111 ----------------------------- -1
-----------------------------
10 0111 1111 --------------------------- -129(只取八位,则是127)
探讨了当尝试将超出char变量范围的值-129存储时,如何通过截取补码的后八位得到127的过程,并解释了char类型取值范围的原因。
1266

被折叠的 条评论
为什么被折叠?



