是我符号错了?
Topic source因为计算时是以补码方式进行的,要得到十进制的转换为原码。
对于负数,先得到原码(最高位为1),然后取反码(除最高位符号位外按位取反),最后+1得到补码;而对于正数原码、反码、补码都是一样的
所以计算过程就是这样的:
1的二进制原补码:00000000 00000000 00000000 00000001
~1得到的补码为: 11111111 11111111 11111111 11111110
求该补码的原码,按照上面计算负数补码的过程反过来,
即首先将上面~1的补码-1.得到反码:11111111 11111111 11111111 11111101
然后对反码取反,得到原码:10000000 00000000 00000000 00000010
最高位符号位为1,表示负数,所以得到-2
不知道有没有说清楚,hhh
- 1
求女票上微博
//位运算
int y = 0 | 1;
int y1 = 0 & 1;
int y2 = ~1;
int y3 = 0 ^ 1;
System.out.println(y);
System.out.println(y1);
System.out.println(y2);
System.out.println(y3);