VC++中,非运算(~10)结果为0101,为什么转换为十进制是-11??怎样识别二进制中的正负?
VC++中,非运算(~10)结果为0101,为什么转换为十进制是-11??怎样识别二进制中的正负?
日期:2012-06-01 17:13:29 人气:1
在现在的主流32位系统里,一般一个整型int是4个字节32位,在符号整数时,最高位表示符号,0为正,1为负。并且在计算机中正负数都是用其补码表示的。
10的二进制是00000000 00000000 00000000 00001010
非运算各位取反得11111111 111111111 11111111 11110101,这个实际上就是-11的补码。
-11的原码:
10000000 00000000 00000000 00001011
-11的反码(原码基础上,符号位不变,其余各位取反):