关于C语言中unsigned的问题

unsigned short x=0;
x--;
printf("%d",s);
为什么老是说在32位系统下会输出65535;
在16位系统下输出-1.
老师说。。不是老是说

因为short类型是占2个字节
如果在32位系统下,用%d也就是整形的方式输出 两个字节的-1.那么其实输出的是
0x 00 00 FF FF
也就是65535了
如果在16位下,整形也是16位,那么输出的就是:0x FF FF所以就是-1了。
温馨提示:答案为网友推荐,仅供参考
相似回答