若x为unsigned int型变量,则执行以下语句后的x的值为___。 x=65535; printf(“%d尀n”,x); 为什么是-1

2024-11-28 07:50:22
推荐回答(3个)
回答1:

首先要明确一点就是,%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型

回答2:

是65536吧

回答3:

你确定是-1?