屬於位運算子,作用是對二進位制數進行移位操作
<<
左移:末尾補 0,原數乘 2
比如十進位制數 10,在末位補 0 等於 100,相當於原數乘 10,所以 x << 1 就是將二進位制的 x 左移一位,比如 4 的二進位制為 100,末尾補 0 等於 1000 即十進位制數的 8.
>>
右移:高位補 0,原數除以 2
比如十進位制數的 8 二進位制表示為 1000,x >> 1 得 0100,即十進位制數的 4, y = x << 1,x 不發生改變,只是將移位後的值賦給了 y。
<<=
左移並賦值,>>=
右移並賦值:
對變數進行移位運算後將得到的結果再賦給原來的變數值,比如 x <<= 1 就是對 x 左移 1 位後將結果再賦給 x
|
:位運算中的 or,a |= b
等同於a = a | b
,a 和 b 任意乙個為 1 則結果為 1
位運算子和移位運算子
golang中有3個位運算 按位與 按位或 按位異或 按位與 兩位全為1,結果為1,否則為0 按位或 兩位有乙個為1,結果為1,否則為0 按位異或 兩位乙個為0,乙個為1,結果為1,否則為0 例如 2 3 2 2的補碼0000 0010 3的補碼0000 0011 2 3 0000 0010 2 2...
移位運算子
移位運算子不外乎就這三種 左移 帶符號右移 和 無符號右移 1 左移運算子 左移運算子 使指定值的所有位都左移規定的次數。1 它的通用格式如下所示 value num num 指定要移位值value 移動的位數。左移的規則只記住一點 丟棄最高位,0補最低位 如果移動的位數超過了該型別的最大位數,那麼...
移位運算子
二進位制運算子,包括位運算子和移位運算子,使程式設計師可以在二進位制基礎上運算元字,可以更有效的進行運算,並且可以以二進位制的形式儲存和轉換資料,是實現網路協議解析以及加密等演算法的基礎。左移 帶符號右移 和 無符號右移 左移 在數字沒有溢位的前提下,對於正數和負數,左移一位都相當於乘以2的1次方,...