管道字符在 Java 方法调用中有什么作用?

2022-09-03 04:52:40

我见过Java程序中方法调用中使用的管道字符。

例如:

public class Testing1 {

    public int print(int i1, int i2){
        return i1 + i2; 
    }
    public static void main(String[] args){
        Testing1 t1 = new Testing1();
        int t3 = t1.print(4, 3 | 2);
        System.out.println(t3);
    }
}

当我运行这个时,我只是得到.7

有人可以解释管道在方法调用中的作用以及如何正确使用它吗?


答案 1

管道 in 是按位包含 OR 运算符的,它在本例中返回 3(二进制)。3 | 211 | 10 == 11


答案 2

这是一个按位的OR。

数字的按位表示形式如下:

|2^2|2^1|2^0|
| 4 | 2 | 1 |
  • 3 的按位表示形式为:
|2^2|2^1|2^0|
| 4 | 2 | 1 |
| - | X | X |  => 3
  • 2 的按位表示形式为:
|2^2|2^1|2^0|
| 4 | 2 | 1 |
| - | X | - | => 2

按位 OR 将返回 3,因为在使用 OR 时,必须至少“占用”一个位。由于第一位和第二位被占用(3 |2)将返回3。

最后,加法4 + 3 = 7。