C语言中unsigned int还能显示负数

日期:2018-12-27 23:42:02 人气:1

C语言中unsigned int还能显示负数

无符号数和有符号数 在存储上并没有区别 在使用的时候 如果符号不匹配 C会做自动转换 比如 你定义了无符号的a然后赋值一个负数 -1 就等同于 a = (unsigned int)-1; 得到的a值实际上是0xffffffff (取决于编译器,32位编译器为这个值) 如果用%u输出 那么就会输出这个数字对应的10进制值 为2^32-1 但是你用%d输出 就等于 printf("%d", (int)a); 于是又被转回了-1
    A+
热门评论