Golang位運算子

2021-08-26 20:33:52 字數 620 閱讀 7283

位運算子是對資料轉換為二進位制後某個位上的數進行的運算,各個語言中都有位運算子,golang也不例外,由於位運算子的執行效率比較高,在實際開發過程中也都有使用,golang的位運算子相較於c/c++貌似「少了」一種操作,這裡的少了並不是真正的少了,而是非這個操作不再使用單獨的位運算子。

golang的位運算子有以下幾種:

&      位運算 and

| 位運算 or

^ 位運算 xor

&^ 位清空 (and

not)

<< 左移

>> 右移

&(與)運算子是二元運算子,當兩個操作位上值均為1時,結果為1,其餘結果一概為0。

|(或)運算子是二元運算子,當兩個操作位上值均為0時,結果為0,其餘結果一概為1。

^(異或)運算子既可以當做一元運算子也可以當做二元運算子,當為一元運算子時,表示取反操作,也就是該位原來值為0,取反後值為1;當為二元運算子時,當兩個操作位上值相同時結果為0,不相同(相異)時結果為1。

&^(按位清除)運算子,該運算子的實際操作為&(^)操作。

<<(左移)運算子,相當於*2擴大兩倍。>>(右移)運算子相當於/2縮小兩倍。

golang中位運算子與移位

not 0111 十進位制7 1000 十進位制8 許多程式語言,取反操作符用波浪線 表示。0101 十進位制5 or 0011 十進位制3 0111 十進位制7 按位或操作符是 0101 xor 0011 0110按位異或運算子是 0101 and 0011 0001按位與操作符是 位運算子對整數...

位運算子,「,」逗號運算子,

位運算子有 按位與 按位或 按位異或 按位取反 優先順序從高到低,依次為 按位與運算有兩種典型用法,一是取乙個位串資訊的某幾位,如以下 擷取x的最低7位 x 0177。二是讓某變數保留某幾位,其餘位置0,如以下 讓x只保留最低6位 x x 077。按位或運算的典型用法是將乙個位串資訊的某幾位置為1。...

運算子之位運算子

右移 負數 無符號右移 或 異或 與 非 說明 位運算子都是作用在二進位製上的 比如 n 50 n 1 結果是多少?100 n 2 結果是多少?200 n 5 結果是多少?1600 為什麼會是這樣的呢?運算的邏輯如下 1,n 50 2,n的二進位制是 0011 0010 3,0011 0010 左移...