内部正在发生哪种按位运算?
Java使用带符号数字的二进制补码表示。因此,更改符号操作包括两个步骤:
- 反转原始值的位,并
- 添加
1
到结果中。
2147483648的表示如下:
10000000000000000000000000000000
反转产生
01111111111111111111111111111111
加法
1使其再次成为相同的数字,即
10000000000000000000000000000000
由于整数溢出。

内部正在发生哪种按位运算?
Java使用带符号数字的二进制补码表示。因此,更改符号操作包括两个步骤:
1到结果中。
2147483648的表示如下:
10000000000000000000000000000000
反转产生
01111111111111111111111111111111
加法
1使其再次成为相同的数字,即
10000000000000000000000000000000
由于整数溢出。