int i=-5; unsigned int y; y=i; printf("%d",y); 为什么是-5;

2024-11-22 07:34:32
推荐回答(1个)
回答1:

%d是有符号的输出,改为%u无符号就ok了
i和y内存中的数据是相同的,
unsigned
int和int的区别在于,int把第一位当符号位,而unsigned
int不是。
i=-5,y=2147483653
(0x80000005)