习题中有许多反码补码的转换题型,
例如:
int i=5;
int j=10;
System.out.println(i+~j);
执行后的输出:
当然,我们可以一步一步考虑:
j=10
0000 1010
~10
1111 0101
计算机中以补码的形式存储,要读取这个补码:
因为这个数是负数:所以--取反+1
1000 1010
1000 1011
这个数值是-11
-11+6=-5
我们还可以利用公式计算:
-n=~n+1
可以推出:
~n=-n-1
所以~10=-11再加5
结果为6