關於移位運算子》和

2021-09-07 15:25:30 字數 660 閱讀 3342

首先,移位運算子有三種,其操作型別只支援:byte / short / char / int和long五種。

<< 左移運算子,表示將左邊的運算元的二進位制資料向左移動*位,移動後空缺位以0填充,多餘位捨棄。(等同於乘2的n次方)

>> 右移運算子,二進位制資料向右移動*位,就在其二進位制資料後抹掉幾位?(這裡還不錯定,但個人理解是這樣的)(等同於除2的n次方)

>>> 無符號右移運算子,不管移動前最高位是0還是1,右移後左側產生的空位部分都以0來填充。

下面我們借乙個demo幫助理解:

public

static

void

main(string args)

}

檢視執行結果,如圖所示:

首先,16的二進位制資料為:10000;

左移兩位,10000變成1000000;

右移兩位,10000變成100;

把得到的二進位制資料轉換成普通資料後,

a左移後的值為64,既16 * 2的2次方(16 * 4)。

a右移後的值為4,既16 / 2的2次方(16 / 4)。

看完這個demo再理解移位運算子是不是就簡單很多?

關於移位運算子》和

首先,移位運算子有三種,其操作型別只支援 byte short char int和long五種。左移運算子,表示將左邊的運算元的二進位制資料向左移動 位,移動後空缺位以0填充,多餘位捨棄。等同於乘2的n次方 右移運算子,二進位制資料向右移動 位,就在其二進位制資料後抹掉幾位?這裡還不錯定,但個人理解...

位運算子和移位運算子

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補最低位 如果移動的位數超過了該型別的最大位數,那麼...