天天看點

java & | 運算& 是所有的2進制位數“與”出的最終結果,“與”的規則是兩者都為1時才得1,否則就得0| 是所有的2進制位數“或”出的最終結果,“或”的規則是兩者之一有一個1就得1,否則就得0

首先得明白10進制的數和2進制的數轉換關系

遵循“8421”原則

1=1

2=10

3=11

4=100

5=101

6=110

7=111

8=1000

9=1001

...

128=1000 0000

129=1000 0001

& 是所有的2進制位數“與”出的最終結果,“與”的規則是兩者都為1時才得1,否則就得0

舉個例子

7 & 6=?

7的2進制是:1 1 1

6的2進制是:1 1 0

結果: 1 1 0

得到結果為110,2進制轉換為10進制110=6

是以:7 & 6 = 6

7的2進制111在上面,6的2進制110在下面,第一位都是1,1&1=1,是以結果的第一位是1,第二位同樣都是1是以也是1,第三位上面是1,下面是0,是以1&0=0,是以最終結果111&110=110,110轉換成10進制等于6

| 是所有的2進制位數“或”出的最終結果,“或”的規則是兩者之一有一個1就得1,否則就得0

7 | 6 =?

結果: 1 1 1

得到結果為111,2進制轉換為10進制111=7

是以:7 | 6 = 7

這裡舉的兩個例子比較簡單,隻是拿比較短的2進制數進行比較,長的2進制也是以此類推

那就比較一個長的

129 & 128 = ?

129的2進制是:1 0 0 0 0 0 0 1

128的2進制是:1 0 0 0 0 0 0 0

結果: 1 0 0 0 0 0 0 0

得到結果為1000 0000,2進制轉換為10進制:1000 0000=128

是以:129 & 128 = 128