偶然看到这样一句代码,有兴趣的看看是什么意思

问题描述:

 

int i = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
        
System.out.println(i);

我教你怎么算得好了, 你也学习下

先算个简单的 1 | 2

0000000001 ----1
0000000010 ----2
相同为0 相异取1
0000000011 ---3
也就是代表 结果为3

1 | 2 | 3
如果1 | 2 | 3 去算 由于1 | 2结果为3 会变成 3 | 3 那就还是三

再 | 4的时候
有按“|” 算了
00000011
00000100

结果 00000111 也就是2*2+2*1+1 =7 了
这个属于基本运算 你可以去学习下, 会算异或的话这个就更easy了.

这个不就是java的按位或(or)运算吗,LZ想知道什么呀? :wink: