【发布时间】:2014-03-07 17:25:10
【问题描述】:
void main()
{
unsigned int a = 10;
a = ~a;
printf("%d\n", a);
}
输出是-11
10 = 1010
~10 = 0101
为什么输出是负数?
【问题讨论】:
-
使用
printf("%u\n", a);再试一次。 -
@timrau 现在的输出是 4294967285
-
试试“%x”,比十进制更明显。
-
int 的大小必须 >= 16 位,字符 >= 8 位。 C 中没有 4 位数据类型
标签: c bit-manipulation bitwise-operators