【问题标题】:Complement operator ~ in C [duplicate]C中的补码运算符〜[重复]
【发布时间】:2014-11-10 09:16:24
【问题描述】:
#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。

【问题讨论】:

  • 不~只是翻转每一位让1011变成0100?
  • 要搜索有关您不知道名称的运算符的问题,请使用"~" 作为搜索字符串!

标签: c


【解决方案1】:

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

2 的恭维被定义为(~a)+1

【讨论】:

    猜你喜欢
    • 2021-01-25
    • 2016-12-11
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多