否定整数会产生意外结果

时间:2017-12-01 07:11:46

标签: java binary

我无法理解以下代码如何给出-12。请帮帮我。

int a=11;    
int result=~a;    
System.out.println(result);    

我认为它会给4.但是我看到前面的零 我想它与2的补充有关,但无法弄清楚如何。

1 个答案:

答案 0 :(得分:4)

11的二进制表示形式为00000000000000000000000000001011

该数字的否定是11111111111111111111111111110100

这是-12的2的补码表示。