第4章 运算符

4.1 运算符的基本介绍

1) 算术运算符

2) 赋值运算符

3) 比较运算符/关系运算符

4) 逻辑运算符

5) 位运算符

6) 其它运算符

4.2 算术运算符

算术运算符是对数值类型的变量进行运算的,比如:加减乘除。

4.2.1 算术运算符


4.2.2 测试用例

+, - , * , / , %, ++, -- , 重点讲解 /、%

自增:++

自减:--

运行结果:

运行结果

4.2.2 算术运算符使用的注意事项

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 更加简洁,统一。(强

制性的)

4.3 关系运算符

4.3.1 基本介绍

1) 关系运算符的结果都是 bool 型,也就是要么是 true,要么是 false

2) 关系表达式 经常用在 if 结构的条件中或循环结构的条件中

4.3.2 图解

4.3.3 特点

1) 关系运算符的结果都是 bool 型,也就是要么是 true,要么是 false。

2) 关系运算符组成的表达式,我们称为关系表达式: a > b

3) 比较运算符"=="不能误写成 "=" !!

运行结果:

4.4 逻辑运算符

4.4.1 基本介绍

用于连接多个条件,最终的结果也是一个bool

4.4.2 注意事项和细节说明

1) &&也叫短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false

2) ||也叫短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true

4.5 赋值运算符

4.5.1 基本介绍

赋值运算符就是将某个运算后的值,赋给指定的变量

4.5.2 赋值运算符的分类

4.5.3 赋值运算符的特点

1)运算符从右到左

  • 运算符的执行顺序是从右到左

2)赋值运算符的左边,只能是变量,右边可能是变量、表达式、常量值

3)复合赋值运算符等价下面的效果

  • a+=3 等价于 a = a + 3

4.6 位运算符

4.7 其他运算符

4.8 特别说明(不支持三元运算符)

4.9 运算符的优先级

4.9.1 运算符的优先级

4.10 键盘输入数据

4.10.1 介绍

在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。

4.10.2 操作步骤

1)导入包fmt

2)调用fmt包的fmt.Scanln()或者fmt.Scanf()


4.10.3 执行一个案例演示

输出结果:

方式2(注意输出:%V 可以输出变量类型 %v 格式化输出内容)

输出结果:

4.11 进制

对于整数,有四种表示方式

  1. 二进制:0-1(注意:在golang中,不能直接使用二进制来表示一个整数,它沿用了c的特点)
  2. 十进制:0 -9
  3. 八进制:0 -7
  4. 十六进制:0-9及A-F

4.11.1 进制的图例

4.11.2 进制的转换

  • 二进制转十进制
  • 八进制转十进制
  • 十六进制转十进制
  • 十进制转成二进制
  • 十进制转8进制
  • 十进制转16进制
  • 二进制转8进制
  • 二进制转16进制
  • 8进制转2进制
  • 16进制转2进制

4.12 位运算

运行结果:

位运算案例

运行结果:

4.12.1 原码、反码、补码

4.12.2 位运算符和移位运算符

  • Golang中有3个位运算

分别是”按位与&、按位或|、按位异或^,它们的运算规则是:

按位与& : 两位全为1,结果为 1,否则为 0

按位或| : 两位有一个为 1,结果为 1,否则为 0

按位异或 ^ : 两位一个为 0,一个为 1,结果为 1,否则为 0


  • Golang中有2个移位运算符

>>、<< 右移和左移,运算规则:

右移运算符 >>:低位溢出,符号位不变,并用符号位补溢出的高位

左移运算符 <<: 符号位不变,低位补 0