位運算

& 與變量

| 或二進制

^ 異或

~ 取補

<< 左移

>> 右移

其中取補只有一個操做數而其它的位操做符都有兩個操做數。這些運算都不會產生溢出位。操做符的操做數爲整型或者是能夠轉換爲整型的任何其它類型。

  • 與運算

操做數按二進制位進行與運算,運算規則爲:

0&0=0

0&1=0

1&0=0

1&1=1

這說明除了兩個位均爲1, 與運算結果爲1。 其它狀況下與運算結果均爲0。

好比2 和10 進行與運算,2 的二進制表示 00000010,10 的二進制表示 00001010, 與運算的結果 00000010, 因此2&10 的結果爲2

  • 或運算

操做數按二進制位進行或運算,運算規則爲:

0|0=0

0|1=1

1|0=1

1|1=1

這說明除了兩個位均爲0, 或運算結果爲0; 其它狀況下或運算結果均爲1。

好比2 和10 進行或運算, 2 的二進制表示 00000010, 10 的二進制表示 00001010, 或運算的結果 00001010 。因此2|10 的結果爲10。

  • 異或運算

操做數按二進制位進行異或運算。運算規則爲:

0^0=0

0^1=1

1^0=1

1^1=0

這說明當兩個位相同時,異或運算結果爲0。 不相同時異或運算結果爲1。

好比 2 和10 進行異或運算, 2 的二進制表示 00000010, 10 的二進制表示 00001010, 異或運算的結果 00001000, 因此2^10 的結果爲8

  • 取補運算

取補運算對操做數的每一位取補. 如對10 取補結果爲: 10 的二進制表示 00001010 與運算的結果 11110101

  • 左移運算

位左移運算將整個數按位左移若干位,左移後空出的部分0。好比:8位的byte型變量

byte a=0x65(即二進制的01100101),將其左移3位:a<<3的結果是0x27(即二進制的00101000)。

  • 右移運算

位右移運算將整個數按位右移若干位,右移後空出的部分填0。好比:8位的byte型變量

Byte a=0x65(既(二進制的01100101))將其右移3位:a﹥﹥3的結果是0x0c(二進制00001100)。

相關文章
相關標籤/搜索