Java中的Binary Ones补充运算符

时间:2015-03-19 08:18:20

标签: java bitwise-operators

为什么以及如何做     的System.out.println(〜4); 给出输出-5 和     的System.out.println(〜0); 给出输出-1?

3 个答案:

答案 0 :(得分:10)

4 is  00000000 00000000 00000000 00000100

~4 is 11111111 11111111 11111111 11111011 = -5

0 is  00000000 00000000 00000000 00000000

~0 is 11111111 11111111 11111111 11111111 = -1

答案 1 :(得分:1)

否定数字会反转它的位数。但是,在逻辑上将 - (负)符号放在数字上它变为1+(~x)

-x = 1+(~x)以来 因此(~x) = -x -1

答案 2 :(得分:0)

如果你想知道为什么

11111111 11111111 11111111 11111011 = -5

你可以阅读更多关于两个补码和负数的信息:

two's complement