golang中特殊的位運算子 介紹和應用

2021-09-17 20:26:07 字數 688 閱讀 5539

此運算子是雙目運算子,按位計算

主要功能:

將運算子左邊資料相異的位保留,相同位清零。

例如:

fmt.println(0&^0)

fmt.println(0&^1)

fmt.println(1&^0)

fmt.println(1&^1)

列印結果如下:00

10

此運算子特點:

1、如果右側是0,則左側數保持不變

2、如果右側是1,則左側數一定清零

3、功能同a&(^b)相同4、如果左側是變數,也等同於:

var a int

a &^= b

和它等價的c語言運算子表示式:

等價於c語言裡的&=~

例如c語言的寫法:

int a = 3;

a &= ~1;

**中經常會要求記憶體對齊,這裡就可以利用&^雲演算法來實現。

**:

package main

import (

"fmt"

)func round(n, a uintptr) uintptr

func main()

列印結果:

8

Golang位運算子

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

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。...