1

有人可以解释为什么以下程序打印输出为 7

公共类测试{

 public static void main(String []args){
     int i =1;
     int j =2;
     int k= 5;
    System.out.println(i|j|k);
 }

}

我想知道在 java int 中 OR 操作是如何发生的。

4

2 回答 2

11

那是Java 中的按位或运算符。为简单起见,最后 8 位:

1 = 00000001
2 = 00000010
5 = 00000101
============
7 = 00000111 // 1 where the corresponding bit is set in any of the above numbers
于 2013-09-18T19:53:12.657 回答
1

这些值具有位值:

1 -> 0001
2 -> 0010
5 -> 0101

当你对它们进行按位或运算时,你会得到:

     0111

这是 7

于 2013-09-18T19:53:54.247 回答