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

2024-11-29 11:13:16
推荐回答(5个)
回答1:

~这里是取反的意思:
如果是 4 取反就是 -4
如果是 8 取反就是 -8
做了一个例子:
#include
int main()
{
    int i=0;

    for(;i<10;)
        printf("%d\n",~i++);

    return 0;
}

这是执行后的结果

回答2:

~i 是对i按位取反;~i++,是~和++运算符同时作用于i,二者有相同的运算优先级,但是是从右至左结合,所以等价于~(i++)。

printf("%d\n",~i++);

的意思就是打印i的按位取反值,同时i增加1

回答3:

运行步骤:
第一步按位取反:~i
第二步打印i的值
第三步:i=i+1
比如假设i为8位无符号数,i=80=(1010000)b,按位取反是10101111,也就是175,那么打印出来的就是175,但是之后内存中的i为80+1=81

回答4:

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

i = 31 二进制为: 0001 1111, 取反后结果: 11111111111111111111111111100000
而%d输出的时候按照有符号输出的,所以结果是上面二进制形式的整数 = -32

回答5:

00
11
22
33
44
55
66
77