补充运算符〜在C中

时间:2014-11-10 09:16:25

标签: c

#include<stdio.h>
int main(){
        int a = 11; // 0000 0000 0000 1011
        int b = ~a; // 1111 1111 1111 0101 [2s compliment] 0100 => 0101 => 
        printf("\n %d \n",b); // -11
        return 0;
}

该程序输出值-12。假设“〜”对应于2的补码,则必须输出-11,如果其1的补码则必须输出-4。 无法得到它如何输出值12.

1 个答案:

答案 0 :(得分:2)

~运算符不是2的补码,而是按位求反。它只是改变了一切。

2&#39;赞美定义为(~a)+1