人间道张学友mp3微盘:符号位问题近来看下

来源:百度文库 编辑:高校问答 时间:2024/05/15 06:03:37
main()
{unsigned a=32768;
printf(〃a=%d\n〃,a);}

C.a=-32768

32768无符号二进制是1000000000000000(15个0)
而用%d有符号的输出时,这段数据代表的数是:
最高位为1,符号为负
其绝对值为:
逐位取反再加1得(补码的计算方法)
0111111111111111+1 = 1000000000000000 =32768
所以,其值为 -32768