黑马程序员技术交流社区
标题:
这个段代码中的负号是怎么确定的?
[打印本页]
作者:
ImKing
时间:
2016-7-5 21:49
标题:
这个段代码中的负号是怎么确定的?
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,整数情况下最高位都是按符号位来计算的吗?
哎呀,感觉这个问题问的好别扭啊,,,
作者:
yaozhilin
时间:
2016-7-5 22:13
最高位就是符号位
作者:
ImKing
时间:
2016-7-5 22:46
yaozhilin 发表于 2016-7-5 22:13
最高位就是符号位
哦哦,谢谢,{:3_57:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2