java 中的位元運算

來源:互聯網
上載者:User

 Java 位運 算 符

位元運算符用來對二進位位進行操作 ,Java中提 供 了 如 下所 示 的 位 運 算符 :

位 運 算 符 (>>,<<,>>>,  & , |, ^ , ~ ) ,位運 算 符 中 ,除 ~ 以 外 ,其餘 均 為 二 元 運 算 符 。 操 作 數 只 能 為 整 型 和字 符 型 數 據 。

 

基礎知識

補碼
所有的整數類型(除了char 類型之外)都是有符號的整數。這意味著他們既能表示正數,又能表示負數。

 Java使用 補 碼 來 表 示 二 進 制 數 ,在補 碼 表 示 中 ,最高 位 為 符號 位 ,正數 的 符 號 位 為 0,負數 為 1。補 碼 的 規 定 如 下 :

對 正 數 來 說 ,最高 位 為 0,其餘 各 位 代 表 數 值 本 身 (以二 進位 表 示 ),如 +42的補碼 為 00101010。
對 負 數 而 言 ,把該 數 絕 對 值 的 補 碼 按 位 取 反 ,然後 對 整 個數 加 1,即得 該 數的 補 碼 。 如 -42的補 碼 為 11010110 (00101010 按 位 取 反 11010101 +1=11010110 )

用 補 碼 來 表 示 數 ,0的補 碼 是 唯 一 的 ,都為 00000000。 (而在 原碼 ,反碼 表 示中 ,+0和 -0的表 示 是 不 唯 一 的 ,可參 見 相 應 的 書 籍 )。而 且 可 以用 111111表示 -1的補 碼 (這也 是 補 碼 與 原 碼 和 反 碼 的 區 別 )。

java 位元運算符:

~
按位非(NOT)(一元運算)

&
按位與(AND)

|
按位或(OR)

^
按位異或(XOR)

>>
右移

>>>
右移,左邊空出的位以0填充 ;無符號右移

<<
左移

&=
按位與賦值

|=
按位或賦值

^=
按位異或賦值

>>=
右移賦值

>>>=
右移賦值,左邊空出的位以0填充 ;無符號左移

<<=
左移賦值

按位非(NOT)

按位非也叫做補,一元運算子NOT“~”是對其運算數的每一位取反。例如,數字42,它的二進位代碼為:
0010 1010  42
經過按位非運算成為
1101 0101 

 

 

按位與(AND)

按位與運算子“&”,如果兩個運算數都是1,則結果為1。其他情況下,結果均為零。看下面的例子:

   0010 1010                   42

&0000 1111                   15

   0000 1010                    10

按位或(OR)

按位或運算子“|”,任何一個運算數為1,則結果為1。如下面的例子所示:

   0010   1010              42

 | 0000    1111             15

   0010    1111                    47

按 位異或運算子“^”,

只有在兩個比較的位不同時其結果是 1。否則,結果是零。  相異時結果是1 ,相同的是 0. 1* 0 =1 0* 1=1 ;

 

下面的例子顯示了“^”運算子的效果。這個例子也表明了XOR 運算子的一個有用的屬性。注意第二個運算數有數字1的位,42對應二進位代碼的對應位是如何被轉換的。第二個運算數有數字0的位,第一個運算數對應位的數 字不變。當對某些類型進行位元運算時,你將會看到這個屬性的用處。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.