任何人都可以解释我们如何得到这个输出? (按位不是)

时间:2017-04-18 14:38:19

标签: java

int x = 10;

的System.out.println(〜X);

//这将打印-11

//如何使用补码算法手动进行计算

2 个答案:

答案 0 :(得分:1)

这是一个否定算子,它会考虑~x = - (10 + 1),所以你得到-11作为输出。参考一些C书,你可以获得更多关于此

的解释

答案 1 :(得分:0)

这可能对您有所帮助:您可以打印出整数的位,如下所示。在那里,您可以看到int表示为32位值。关于按位非运算符的解释可以在网上找到我猜;

    int x = 10;
    System.out.println(Integer.toBinaryString(x));  //00000000000000000000000000001010
    System.out.println(Integer.toBinaryString(~x)); //11111111111111111111111111110101
    System.out.println(~x); //-11