移位運算子的介紹與使用

2021-10-10 19:20:28 字數 1288 閱讀 3793

2.右移運算子》

補充總結

在程式語言當中,位操作運算子是乙個比較少用到的操作符,但是在特殊的時候又能起到很好的作用,因此在這裡簡單介紹一下位運算子的使用。

程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的。位運算說穿了,就是直接對整數在記憶體中的二進位制位進行操作。比如,and運算本來是乙個邏輯運算子,但整數與整數之間也可以進行and運算。舉個例子,6的二進位制是110,11的二進位制是1011,那麼6 and 11的結果就是2,它是二進位制對應位進行邏輯運算的結果(0表示false,1表示true,空位都當0處理):

110and 1011

———-

0010 –> 2

由於位運算直接對記憶體資料進行操作,不需要轉成十進位制,因此處理速度非常快。

按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零。

需要移位的數字 << 移位的次數

例如: 3 << 2,則是將數字3左移2位

3 << 2

首先把3轉換為二進位制數字0000 0000 0000 0000 0000 0000 0000 0011,然後把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,最後在低位(右側)的兩個空位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 1100,則轉換為十進位制是12。

在數字沒有溢位的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,左移n位就相當於乘以2的n次方。

按二進位制形式把所有的數字向右移動對應位移位數,低位移出(捨棄),高位的空位補符號位,即正數補零,負數補1。

需要移位的數字 >> 移位的次數

例如11 >> 2,則是將數字11右移2位

11的二進位制形式為:0000 0000 0000 0000 0000 0000 0000 1011,然後把低位的最後兩個數字移出,因為該數字是正數,所以在高位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 0010。轉換為十進位制是2。

右移一位相當於除2,右移n位相當於除以2的n次方

6種位操作符的形式與含義如下:

& :按位「與」(and);

| :按位「或」(or);

^ :按位「異或」(xor);

~ :「取反」 (not);

>> :資料右移;

<< :資料左移;

以上就是今天要講的內容,本文僅僅簡單介紹了兩種移位運算子的使用,利用移位運算子進行運算是非常快的,在進行數**算的時候,如果可以選用移位運算子就盡量選擇移位運算。由於移位運算子常常是2的冪次運算,因此常常用於完全二叉樹的計算。

移位運算子

移位運算子不外乎就這三種 左移 帶符號右移 和 無符號右移 1 左移運算子 左移運算子 使指定值的所有位都左移規定的次數。1 它的通用格式如下所示 value num num 指定要移位值value 移動的位數。左移的規則只記住一點 丟棄最高位,0補最低位 如果移動的位數超過了該型別的最大位數,那麼...

移位運算子

二進位制運算子,包括位運算子和移位運算子,使程式設計師可以在二進位制基礎上運算元字,可以更有效的進行運算,並且可以以二進位制的形式儲存和轉換資料,是實現網路協議解析以及加密等演算法的基礎。左移 帶符號右移 和 無符號右移 左移 在數字沒有溢位的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,...

移位運算子

位運算子的執行速度要快於算術運算子,用位運算子代替算數符會加快程式執行速度。移位運算子包括 左移 和 右移 左移運算子的作用是將乙個二進位制位的運算元按指定的移動位數向左移動,移出位被丟棄,右邊的空位一律補0 右移運算子的作用是將乙個二進位制位的運算元按指定的移動位數向右移動,移出位被丟棄,左邊的空...