额,没看懂给~~~为什么有符号是32767呢?
追答额,我的回答稍微有点错误。
这道题我从试卷上看,是以16位CPU为蓝本出的。16位机的整数范围为-32768 - 32767
最高位代表符号,最高位为1,表示负数,为0,表示正数。
0xFFFF,最高位是1,所以用int型表示,就是-32768
0x7FFF,最高位是0,所以用int型表示,就是32767
无符号数没有正负,最高位也参与计算,就是65535
------------------------------------------------------------------------------
这些知识都是针对16位系统的了。
对32位CPU来讲,int型数据有4个字节,即无符号最大数为0xFFFFFFFF,
有符号最大为0x7FFFFFFF。
无论是有符号,还是无符号,0xFFFF都没有超出最大范围,所以%u输出结果就是0xFFFF对应的正整数,65535