有如下C语言程序段
short si = -32767; unsigned short usi = si;
执行上述两条语句后,usi的值为( )。
A. -32767
B. 32767
C. 32768
D. 32769
AI智能判题可自动批改答案并给出反馈,每次使用将消耗 1个诺币
您当前的诺币数量: 个
AI正在判题,请稍候...
short型占4B也就是16bit,65535 = 2^16 - 1 = 65536 - 1,机器码(补码)表示为FFFFH
将usi赋值给带符号short变量si,机器码表示为FFFFH(最高位符号位为1,负数),剩下的15位均为1,那么表示的是 - ( 2^15 - 1 ) = - 32767 (注:2^15 = 32768)
-32767的15位数值表示的补值是-1,那么si表示的值为-1。
看到65535,要能知道2^16 = 65536
所以unsigned short usi=65535;// 1111 1111 1111 1111
方法一:二进制计算
C语言中...
登录后提交答案