一个Java问题: int a = 5, b = 8; System.out.println(a|b); 为什么结果是13?

2024年11月27日 12:42
有3个网友回答
网友(1):

先把两个十进制数字转换成为二进制。得出:
5=0101
8=1000
所以:
A | B=5 | 8= 0101 | 1000=1101
1101转换成十进制就是13..

楼主去理解一下或运算。

网友(2):

a的二进制是 0000 0000 0000 0000 0000 0000 0000 0101
b的二进制是 0000 0000 0000 0000 0000 0000 0000 1000
|操作符表达的是'或'操作。 属于双目运算符、 比如 1 | 0 =1 ,只要俩边一个是1 结果就是1 所以 a|b=0000 0000 0000 0000 0000 0000 0000 1101=8(十进制表示)

网友(3):

按位运算,自己转成二进制看看。

5->0000 0000 0000 0101

8->0000 0000 0000 1000

| 是或,即是“相加”。