[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。
注意:扩展时,符号位不变。
原文地址:https://www.cnblogs.com/lca1826/p/6616995.html