Go語言學習 7 運算子

2021-09-11 15:08:11 字數 2953 閱讀 3277

運算子用於在程式執行時執行數學或邏輯運算。

go語言內建的運算子有:

算術運算子

關係運算子

邏輯運算子

位運算子

位運算子對整數在記憶體中的二進位制進行操作。

位運算子比一般的算術運算子速度要快,而且可以實現一些算術運算子不能實現的功能。如果要開發高效率程式,位運算子是必不可少的。位運算子用來對二進位制進行操作,包括:按位與(&)、按位或(|)、按位異或(^)、按位左移(<<)、按位右移(>>)

按位與按位與(&):對兩個數進行操作,然後返回乙個新的數,這個數的每個位都需要兩個輸入數的同一位都為1時 才為1。簡單的說:同一位同時為1 則為1

按位或按位或(|):比較兩個數,然後返回乙個新的數,這個數的每一位置設定1的條件是任意乙個數的同一位為1 則為1。簡單的說:同一位其中乙個為1 則為1

按位異或

按位異或(^):比較兩個數,然後返回乙個數,這個數的每一位設為1的條件是兩個輸入數的同一位不同 則為1,如果相同就設為 0 。簡單的說:同一位不相同 則為1

左移運算子(<<)

按二進位制形式把所有的數字向左移動對應的位數,高位移出(捨棄),低位的空位補零

語法格式:

需要移位的數字 << 移位的次數

例如:3 << 4,則是將 數字3 左移了4位

計算過程:

3 << 4

首先把 3 轉換為 二進位制數字 0000 0000 0000 0000 0000 0000 0000 0011,然後把該數字高位(左側)的兩個零移出。其他的數字都朝左平移4位,最後在 低位(右側)的兩個空位補零,則得到的最終結果為 0000 0000 0000 0000 0000 0000 0011 0000,則轉換為十進位制為 48

用 3 * 2 ^4 計算 更加方便,3 乘以 2 的4次方

數字意義

在數字沒有溢位的前提下,對於正數 和 負數,左移一位 都相當於 乘以 2的一次方,左移 n 位就相當於 乘以2的 n 次方

右移運算子(>>)

按二進位制形式把所有的數字都向右移動對應 位移位數,低位移出(捨棄),高位的空位補符號位,即正數補零,負數 補1

語法格式

需要移位的數字 >> 移位的次數

例如:11 >> 2,則是將數字 11 右移2位

計算過程

11的二進位制形式為:0000 0000 0000 0000 0000 0000 0000 1011,然後把低位的最後兩個數字移出,因為該數字是正數,所有在高位補零,則得到的最終結果為 0000 0000 0000 0000 0000 0000 0000 0010,轉化為十進位制為2

用 11 / (2 ^ 2) 計算 更加方便,11 除以 2 的2次方

數字意義

右移一位相當於 除2,右移 n 位,則相當於 除以2的 n 次方

賦值運算子

賦值運算子有:=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。

demo示例

以下是上面知識點的**演示:

package main

import

"fmt"

var a = 21.0

var b = 5.0

var c float64

func

main()

// 算術運算子

func

arithmetic()

// 關係運算子

func

relational

() else

if (a < b) else

if (a > b) else

}// 邏輯運算子

func

logical()

if (a || b)

if (!(a && b))

}// 位運算子

func

bitwise()

// 賦值運算子

func

assignment()

複製**

執行結果為:

算術運算子 --- start---

第一行 - c 的值為 26.00

第二行 - c 的值為 16.00

第三行 - c 的值為 105.00

第四行 - c 的值為 4.20

第五行 - c 的值為 1

第六行 - a 的值為 22.000000

第七行 - a 的值為 20.000000

關係運算子 --- start---

第一行 - a 不等於 b

第二行 - a 不小於 b

第三行 - a 大於 b

邏輯運算子 --- start---

第二行 - 條件為 true

第三行 - 條件為 true

位運算子 --- start---

60254

1748

2賦值運算子 --- start---

第1行 - =運算子例項,c的值為 20.000000

第2行 - +=運算子例項,c的值為 40.000000

第3行 - -=運算子例項,c的值為 20.000000

第4行 - *=運算子例項,c的值為 400.000000

第5行 - /=運算子例項,c的值為 20.000000

第6行 - =運算子例項,c的值為 20.000000

第7行 - <<=運算子例項,d的值為 800

第8行 - >>=運算子例項,d的值為 200

第9行 - &=運算子例項,d的值為 0

第10行 - |=運算子例項,d的值為 2

第11行 - ^=運算子例項,d的值為 0

複製**

GO語言學習筆記 4 運算子

a 10,b 20 運算子描述例項 相加a b 輸出結果 30 相減 a b 輸出結果 10 相乘 a b 輸出結果 200 相除 b a 輸出結果 2 求餘 b a 輸出結果 0 自增 a 輸出結果11 自減 a 輸出結果 9 a 10,b 20 運算子描述 例項 檢查兩個值是否相等,如果相等返回...

C語言學習 運算子

運算子是一種告訴編譯器執行特定的數學或邏輯操作的符號。c 語言內建了豐富的運算子,並提供了以下型別的運算子 下表顯示了 c 語言支援的所有算術運算子。假設變數 a 的值為 10,變數 b 的值為 20,則 運算子描述例項 把兩個運算元相加 a b 將得到 30 從第乙個運算元中減去第二個運算元 a ...

Go語言運算子

go語言學習教程 www.lsdcloud.com 運算子用於在程式執行時執行數學或邏輯運算。go 語言內建的運算子有 求餘 下表列出了所有go語言的算術運算子。假定 a 值為 10,b 值為 20。運算子描述例項 相加a b 輸出結果 30 相減 a b 輸出結果 10 相乘 a b 輸出結果 2...