首先要明确一点就是,%d显示的是int型,也就是说不管你x是什么,它会把x当做int型来显示
先看一下unsigned int的65535和int的 -1是怎么表示的:
unsigned int x = 65535;// 四字节,用2进制进制表示就是 1111 1111 1111 1111
int x = -1;//四字节,最高位表示符号,最高位为1表示负数,且负数用补码表示,即1是0000 0000 0000 0001,它的补码是1111 1111 1111 1111
所以,int型的-1与unsigned int的65535在二进制上表示是一样的,可以这么想:它们的内容是一样的,只不过在%d显示时,把它当做了int型
是65536吧
你确定是-1?