Golang中位運算的理解於應用場景

2022-05-15 12:54:50 字數 701 閱讀 5159

位運算都是在二進位制的基礎上進行運算的,所以在位運算之前要先將兩個數轉成二進位制

&與  and

|或 or

^異或 xor

&^位清空 (and not)

《左移>> 右移

1. & 與 and 

&只有兩個數都是1結果才為1

例:var i int8 = 20

var j int8=15   求i&j

首先我們需要將宣告變數,轉換成二進位制形式進行位與運算

i轉成二進位制為0001

0100, j轉成二進位制為0000 1111

0001

0100 & 0000

1111 = 0000

0100

0000 0100對應的十進位制就是4

2. | 或

或 兩個數有乙個是1 結果就是1

0001

0100 | 0000

1111 = 0001

1111

0001

1111轉成十進位制就是31

20 | 15 = 31

golang中位運算子與移位

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

理解golang中的function types

package main import fmt greeting function types type greeting func name string string func say g greeting,n string func english name string string fun...

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

此運算子是雙目運算子,按位計算 主要功能 將運算子左邊資料相異的位保留,相同位清零。例如 fmt.println 0 0 fmt.println 0 1 fmt.println 1 0 fmt.println 1 1 列印結果如下 00 10此運算子特點 1 如果右側是0,則左側數保持不變 2 如果...