c语言:printf("%d\n",~i++);是什么意思,特别是~ ?

~是取反的意思
输出 i 取反后的结果.而后再执行 i = i + 1;
int i = 31;
printf("%d\n", ~i++);
输出结果:
-32

i = 31  二进制为:  0001 1111, 取反后结果: 11111111111111111111111111100000
而%d输出的时候按照有符号输出的,因此结果是上面二进制形式的整数 = -32
相关文章
相关标签/搜索