unsigned a =4294967294;
printf ( "%d, %u\n", a, a);
输出结果为:
- 2,4294967294
为什么会是-2?
unsigned a =4294967294;
printf ( "%d, %u\n", a, a);
输出结果为:
4字节有符号取值范围 -2147483648 ~ +2147483647
无符号情况下表示为 0 ~ 4294967295
%d输出的是有符号的,那么 a 的值就溢出了,在这个闭环范围 -2147483648 ~ +2147483647 内取到的值就是 -2