C语言中unsigned int还能显示负数
C语言中unsigned int还能显示负数
日期:2018-12-27 23:42:02 人气:1
无符号数和有符号数 在存储上并没有区别 在使用的时候 如果符号不匹配 C会做自动转换
比如 你定义了无符号的a然后赋值一个负数 -1 就等同于
a = (unsigned int)-1;
得到的a值实际上是0xffffffff (取决于编译器,32位编译器为这个值)
如果用%u输出 那么就会输出这个数字对应的10进制值 为2^32-1
但是你用%d输出 就等于
printf("%d", (int)a);
于是又被转回了-1