iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 6
0
Modern Web

勇者闖江湖身背三支刀GoGoGolang系列 第 6

Go的初心者(語法介紹)Part 2 運算元應用篇

今天我們來關注一下 Go 的運算元該怎麼使用

在 Go 語言中 運算元代表一個運算式的基本值 而 Go 的運算元一共有 21 種
這邊就不一一介紹了 基本的加減乘除跟比較運算就不特別說明了 就幾個比較特別的運算元做說明

1.位移運算元 "<<" 跟 ">>" 這兩個都屬於二元運算元
"<<" 往左位移運算 ex:4 << 2 = 16 根據第 2 運算元決定 第 1 運算元位址 往左移動幾次
0000 0100 = 4 移動前
0001 0000 = 16移動後

">>" 往右位移運算 ex:4 >> 2 = 1 根據第 2 運算元決定 第 1 運算元位址 往右移動幾次
0000 0100 = 4 移動前
0000 0001 = 1 移動後

2.算數運算 "&"、"|"、"^"、"&^"
"&" And ex : 7 & 13 = 5 兩個同位的 2 進位數只要一個為 0 則次欄位為 0
0000 0111 = 7
0000 1101 = 13
------結果------
0000 0101 = 5

"|" or ex : 7 | 13 = 15 兩個同位的 2 進位數只要一個為 1 則次欄位為 1
0000 0111 = 7
0000 1101 = 13
------結果------
0000 1111 = 15

"^" 互斥 ex : 7 ^ 13 = 10 兩個同位的 2 進位數只要都是 1 則結果為 0
0000 0111 = 7
0000 1101 = 13
------結果------
0000 1010 = 10

"&^" 互斥And ex : 7 &^ 13 = 2 根據第 2 個運算元的 2 進位值如果為 1 則將第一運算元的對應位址歸 0
0000 0111 = 7
0000 1101 = 13
------結果------
0000 0010 = 2

^unit8(常數) ex : ^unit8(1) = 254 Go內建函數 unit8 會將一個常數轉為 unit8 類型值 去掉常數正負號
0000 0001 = 1
1111 1111 = 255
------結果------
1111 1110 = 254

^常數 ex : ^1 這裡我們採用 二補數的概念 將常數進行反轉運算 在計算二進制數字的二補數時,會將數字進行位元反相運算,再將結果加1,不考慮溢位位元(一般情形,溢位位元會為0),就可以得到該數字的二補數。
0000 0001 = 1
1111 1111 = -1
------結果------
1111 1110 = -2

3.運算符號優先順序(x代表星號)在Go的運算式中一元運算的優先度最高 二元運算的話則數字越大優先度越高
5:x/%<<>>&&^
4:+-|^
3:== != < <= > >=
2:&&
1:||


上一篇
Go的初心者(語法介紹)Part 1 基本語法篇
下一篇
Go的初心者(語法介紹)Part 3 數字篇
系列文
勇者闖江湖身背三支刀GoGoGolang8

尚未有邦友留言

立即登入留言