有以下程序 #include main() { int i=0; i = ~ i; printf("%d\n",i); } 程序运行后的输出结果是( )。

admin2015-07-28  20

问题 有以下程序
#include
main()
{ int i=0;
i = ~ i;
printf("%d\n",i);
}
程序运行后的输出结果是( )。

选项 A、-1
B、0
C、1
D、8

答案A

解析 计算机系统中,数值一律使用补码进行表示和存储,补码可以将符号位和数值位进行统一处理,正数的补码和原码相同,负数的补码是原码除符号位外的其他位取反再整体加1所得。取反运算符"~"的运算规则是对参与运算的数的各二进制位按位求反,0的二进制表示(篇幅有限,这里用八位表示)为00000000,取反后为11111111,符号位为1,所以"11111111"是一个负数的补码,对应原码为10000001,对应十进制数值为-1,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/mMn0FFFM
0

随机试题
最新回复(0)