- class Demo1_Operator {
- public static void main(String[] args) {
- /*
- * &,|,^,~ 的用法
- * &:有0则0
- * |:有1则1
- * ^:相同则0,不同则1
- * ~:按位取反
- */
- System.out.println(6 & 3); //2
- System.out.println(6 | 3); //7
- System.out.println(6 ^ 3); //5
- System.out.println(~6); //-7?
- }
- }
- /*
- 110
- & 011
- -----------
- 010
- 110
- | 011
- -----------
- 111
- 110
- ^ 011
- -----------
- 101
- 00000000 00000000 00000000 00000110 6的原码反码补码都是本身
- 11111111 11111111 11111111 11111001 对6取反
- - 00000000 00000000 00000000 00000001
- ---------------------------------------
- 11111111 11111111 11111111 11111000 反码
- 10000000 00000000 00000000 00000111 原码(-7)
- */
复制代码
问题:
其中System.out.println(~6); 语句输出的结果是 -7,但是分析的时候,最高位符号位为 1,整数情况下最高位都是按符号位来计算的吗?
哎呀,感觉这个问题问的好别扭啊,,, |
|