# 运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
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)

