# 運算符
運算符是一種特殊的符號,用以表示數據的運算、賦值和比較等
1) 算術運算符
2) 賦值運算符
3) 比較運算符/關系運算符
4) 邏輯運算符
5) 位運算符
6) 其它運算符
#### **算術運算符的一覽表**



1) 對于除號 "/",它的整數除和小數除是有區別的:整數之間做除法時,只保留整數部分而舍棄
小數部分。 例如: x := 19/5 ,結果是 3
2) 當對一個數取模時,可以等價 a%b=a-a/b\*b , 這樣我們可以看到 取模的一個本質運算。
3) Golang 的自增自減只能當做一個獨立語言使用時,不能這樣使用

4) Golang 的++ 和 \-- 只能寫在變量的后面,不能寫在變量的前面,即:只有 a++ a-- 沒有 ++a --a
5) Golang 的設計者去掉 c / java 中的 自增自減的容易混淆的寫法,讓 Golang 更加簡潔,統一。(強制性的)
#### **比較運算符**
1) 關系運算符的結果都是 bool 型,也就是要么是 true,要么是 false
2) 關系表達式 經常用在 if 結構的條件中或循環結構的條件中

#### **邏輯運算符**
用于連接多個條件(一般來講就是關系表達式),最終的結果也是一個 bool 值

1) &&也叫短路與:如果第一個條件為 false,則第二個條件不會判斷,最終結果為 false
2) ||也叫短路或:如果第一個條件為 true,則第二個條件不會判斷,最終結果為 true
#### **賦值運算符**
賦值運算符就是將某個運算后的值,賦給指定的變量。

Go 語言提供了大多數語言不支持的多重賦值

#### **位運算符**

#### **其它運算符說明**

#### **實現三元運算的效果**

#### **運算符的優先級**

1) 運算符有不同的優先級,所謂優先級就是表達式運算中的運算順序。如右表,上一行運算符總優先于下一行。
2) 只有單目運算符、賦值運算符是從右向左運算的。
3) 梳理了一個大概的優先
1:括號,++, --
2: 單目運算
3:算術運算符
4:移位運算
5:關系運算符
6:位運算符
7:邏輯運算符
8:賦值運算符
9:逗號
#### **鍵盤輸入語句**
在編程中,需要接收用戶輸入的數據,就可以使用鍵盤輸入語句來獲取。
1) 導入 fmt 包
2) 調用 fmt 包的 fmt.Scanln() 或者 fmt.Scanf()
#### **進制**
對于整數,有四種表示方式:
1) 二進制:0,1 ,滿 2 進 1。
在 golang 中,不能直接使用二進制來表示一個整數,它沿用了 c 的特點。
2) 十進制:0-9 ,滿 10 進 1。
3) 八進制:0-7 ,滿 8 進 1. 以數字 0 開頭表示。
4) 十六進制:0-9 及 A-F,滿 16 進 1. 以 0x 或 0X 開頭表示。
此處的 A-F 不區分大小寫。

#### **進制轉換的介紹**
其它進制轉十進制
(1)二進制如何轉十進制

(2)八進制轉換成十進制示例

(3)16 進制轉成 10 進制

十進制轉成其他進制
(1)十進制如何轉二進制

(2)十進制轉成八進制

(3)十進制轉十六進制

二進制轉換成八進制、十六進制
(1)二進制轉換成八進制
為什么是三位一組呢因為三位正好表示0-7

(2)二進制轉成十六進制

八進制、十六進制轉成二進制
(1)八進制轉換成二進制

(2)十六進制轉成二進制

#### **位運算**
二進制是逢 2 進位的進位制,0、1 是基本算符。 現代的電子計算機技術全部采用的是二進制,因為它只使用 0、1 兩個數字符號,非常簡單方便,易于用電子方式實現。計算機內部處理的信息,都是采用二進制數來表示的。二進制(Binary)數用 0
和 1 兩個數字及其組合來表示任何數。進位規則是“逢 2 進 1”,數字 1 在不同的位上代表不同的值,
按從右至左的次序,這個值以二倍遞增。
在計算機的內部,運行各種運算時,都是以二進制的方式來運行。

**Golang 中有 2 個移位運算符:**
\>>、<< 右移和左移,運算規則:
右移運算符 \>>:低位溢出,符號位不變,并用符號位補溢出的高位
左移運算符 <<: 符號位不變,低位補 0
位移運算也是位運算也是按補碼的方式
a := 1 >> 2 // 0000 0001(補碼和源碼一致) =>0000 0000(補碼和源碼一致不需要轉換) = 0
c := 1 << 2 // 0000 0001(補碼和源碼一致) ==> 0000 0100(補碼和源碼一致不需要轉換) => 4
左移運算符 <<: 符號位不變,低位補 0
#### **原碼、反碼、補碼**
為什么計算機用補碼運算的呢因為計算機沒有減法,所以用補碼
1+1 1-1 = 1+(-1)
