这个代码的输出结果和原因

来源:百度知道 编辑:UC知道 时间:2024/05/14 14:26:03
#include<stdio.h>
void main()
{
unsigned x1;
int b=-1;
x1=b;
printf("%u",x1);
}
在TC编译下为什么结果是65535

unsigned x1;
实际为:
unsigned int x1;

x1=b=-1
==>
x1=(unsigned int)-1=2^32-1

看起来这个数很大。。。

结果很大啊~`````````

2的32次方-1
b=-1 即1111 1111 1111 1111
x1为unsigned,所以x1=1111 1111 1111 1111,即2^32-1,大约在42亿