[C/C++] 原码、反码、补码问题

正确答案:D
解析:
C语言中变量以补码形式存放在内存中,正数的补码与原码相同,负数求补码方式为(符号位不变,其余各位取反,最后末尾加1);
32位机器:int 32位,short 16位。
 x = 127,正数,原码:0111 1111,补码:0111 1111,扩展到32位高位补0,结果为0000007FH;
 y = -9,负数,原码:1000 1001,补码:1111 0111,扩展到16位高位补1,结果为FFF7H;
 z = x + y = 118,原码:0111 0110,补码:0111 0110,扩展到32位高位补0,结果为00000076H。
注意:扩展时,符号位不变。
posted @ 2017-03-25 13:56  Strawberry丶  阅读(1389)  评论(0编辑  收藏  举报