Golang 学习之旅------第四章 运算符

一、运算符的基本介绍

1.概念
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

2.分类
(1).算术运算符
(2).赋值运算符
(3).比较运算符/关系运算符
(4).逻辑运算符
(5).位运算符
(6).其它运算符

二、算术运算符

1.基本概念
算术运算符是对数组类型的变量进行运算的,比如:加减乘除,在GO程序中使用的非常多。

2.算术运算符一览表
Golang 学习之旅------第四章 运算符_第1张图片

3.示例代码如下:
Golang 学习之旅------第四章 运算符_第2张图片
4.算术运算符使用注意细节
(1).对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:x := 19 / 5 ,结果是3。
(2).当对一个数取模时,可以等价于a % b = a - (a / b) * b,这是取模的本质运算。
(3).Golang的自增自减只能当做一个独立语言使用,不能按照如下这样使用:
Golang 学习之旅------第四章 运算符_第3张图片
(4).Golang的++和–只能写在变量的后面,不能写在变量的前面,即只有 a++ a–,没有++a和–a
Golang 学习之旅------第四章 运算符_第4张图片
(5).Golang的设计者去掉c/Java中的自增自减的容易混淆的写法,让Golang更加简洁、统一,并且这是强制性的

5.练习题
(1).要求
a.假如还有 97 天放假,问:xx 个星期零 xx 天
b.定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
(2).代码示例如下
Golang 学习之旅------第四章 运算符_第5张图片

三、关系运算符

1.基本介绍
(1).关系运算符的结果都是bool型,也就是要么是true,要么是false
(2).关系表达式经常用在if结构的条件中或循环结构的条件中

2.关系运算符一览表
Golang 学习之旅------第四章 运算符_第6张图片
3.关系运算符的细节说明
(1).关系运算符的结果都是bool型,也就是要么是true,要么是false
(2).关系运算符组成的表达式,我们称为关系表达式:a > b
(3).比较运算符“==”不能误写成“=”

4.示例代码如下:
Golang 学习之旅------第四章 运算符_第7张图片

四、逻辑运算符

1.基本介绍
用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个bool值

2.逻辑运算的说明:
Golang 学习之旅------第四章 运算符_第8张图片
3.注意事项和细节说明
(1).&&也叫短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false
(2).||也叫短路或:如果第一个条件为true,则第二个条件不会判端,最终结果为true

4.示例代码如下:
Golang 学习之旅------第四章 运算符_第9张图片

五、赋值运算符

1.基本介绍
赋值运算符就是将某个运算后的值,赋给指定的变量

2.赋值运算符的分类
Golang 学习之旅------第四章 运算符_第10张图片
Golang 学习之旅------第四章 运算符_第11张图片
3.赋值运算符的特点
(1).运算顺序从右往左
在这里插入图片描述
(2).赋值运算符的左边,只能是变量,右边可以是变量、表达式、常量值
Golang 学习之旅------第四章 运算符_第12张图片
(3).复合赋值运算符等价于下面的效果
比如:a += 3 等价于 a = a + 3

4.示例代码如下:
Golang 学习之旅------第四章 运算符_第13张图片

六、位运算符

1.基本介绍
Golang 学习之旅------第四章 运算符_第14张图片
2.二进制知识后续有需要的,可以找我索要
3.二进制在运算中的说明

(1).二进制是逢2进位的进位制,0和1是其基本算符
(2).现代电子计算机技术全部采用的是二进制,因为它只有0和1两个数字符号,非常的简单方便,易于用电子方式实现
(3).计算机内部处理的信息,都是采用二进制数来表示的。二进制数用0和1两个数字及其组合来表示任何数。进位规则是”逢2进1“,数字1在不同的位上代表不同的值,按从右至左的次序,这个值是以二倍递增,在计算机的内部,运行各种运算时,都是以二进制的方式来运行。

4.原码、反码、补码
网上对原码、反码和补码的解释过于复杂,总结精简了6句话:
对于有符号的而言:

a.二进制的最高位是符号位:0代表正数 1代表负数
1 -------> [0000 0001] -1---------->[1000 0001]

b.正数的原码、反码和补码都一样
1=====> 原码[0000 0001] 反码[0000 0001]补码[0000 0001]

c.负数的反码=它的原码符号位不变,其它位取反(0—>1 1---->0)
-1=====>原码[1000 0001] 反码[1111 1110]

d.负数的补码=它的反码+1
-1=====>原码[1000 0001] 反码[1111 1110] 补码[1111 1111]

e.0的反码、补码都是0

f.在计算机运算的时候,都是以补码的方式来运算的
1+1 1-1=1+(-1)

5.Golang中有3个位运算符

(1).分类
按位与 &
按位或 |
按位异或 ^

(2).运算规则
按位与 &:两位全为1,结果为1,否则为0
按位或 |:两位有一个为1,结果为1,否则为0
按位异或 ^:两位一个为0,一个为1,结果为1,否则为0

(3)案例练习
a.习题
2&3=?
2|3=?
2^3=?
-2^2=?

b.具体运算步骤
2&3
2的补码:0000 0010
3的补码:0000 0011
2&3 ----> 0000 0010 ------->2

2|3
2的补码:0000 0010
3的补码:0000 0011
2|3 ----> 0000 0011-------->3

2^3
2的补码:0000 0010
3的补码:0000 0011
2^3 ----> 0000 0001-------->1

-2^2
2的原码: 0000 0010 ----> 反码0000 0010 —>补码 0000 0010
-2的原码:1000 0010 ----> 反码1111 1101 —>补码 1111 1110

-2 ^ 2 ------> 补码:1111 1100 反码:1111 1011 原码:1000 0100 ------> -4

c.示例代码:
Golang 学习之旅------第四章 运算符_第15张图片

6.Golang中有2 个移位运算符

(1).分类和运算规则
在这里插入图片描述
(2).案例演示
a := 1 >> 2 // 0000 0001 =>0000 0000 = 0
c := 1 << 2 // 0000 0001 ==> 0000 0100 => 4

(3).代码示例
Golang 学习之旅------第四章 运算符_第16张图片

七、其它运算符

1.基本介绍
在这里插入图片描述
2.示例代码
Golang 学习之旅------第四章 运算符_第17张图片
Golang 学习之旅------第四章 运算符_第18张图片

八、特别说明

1.基本介绍
Golang 学习之旅------第四章 运算符_第19张图片
2.举例说明,在golang中实现三元运算的效果
Golang 学习之旅------第四章 运算符_第20张图片

九、运算符的优先级

1.运算符的优先级一览表
Golang 学习之旅------第四章 运算符_第21张图片

2.对上图的说明
(1).运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序,如上图
(2).只有单目运算符、赋值运算符是从右向左运算的
(3).梳理了一个大概的优先级:
a.括号,++,–
b.单目运算
c.算术运算符
d.移位运算符
e.关系运算符
f.位运算符
g.逻辑运算符
h.赋值运算符
i.逗号

十、键盘输入语句

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

2.操作步骤
(1).导入fmt包
(2).调用fmt包的fmt.Scanln()或者是fmt.Scanf()
在这里插入图片描述
Golang 学习之旅------第四章 运算符_第22张图片
3.示例代码如下:
Golang 学习之旅------第四章 运算符_第23张图片
Golang 学习之旅------第四章 运算符_第24张图片

你可能感兴趣的:(golang,学习,算法)