運算子用於在程式執行時執行數學或邏輯運算。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...