Java 中的管道 (|) 运算符

2022-08-31 15:18:23

我在Java中有这个声明:

System.out.println(3|4); 

为什么输出为 7?


答案 1

这是一个按位 OR 操作。它在二进制级别上修改事物。

             011                     3
in binary: | 100     in decimal:  |  4
             ___                   ___
             111                     7

使用科学模式打开 Windows 计算。您可以在十进制和二进制(和十六进制)之间翻转,并执行按位运算,包括 or、and、xor 等。

要按位或在脑海中或在纸上执行,请比较同一序数的每个数字。如果任一数字为 1,则该序号处的结果将为 1。


答案 2

运算符执行“按位 OR”。如果任一位为 1,则两位上的按位 OR 的输出为 1;如果两位均为 0,则两位的按位 OR 的输出为 0。两个数字上的按位 OR 只是分别对每个位执行按位 OR。|

以下是工作原理:3|4

  3:  00000011
  4:  00000100
--------------
3|4:  00000111 = 7