GO第 4 章:运算符

第 4 章 运算符

4.1 运算符的基本介绍

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

    1. 算术运算符
    1. 赋值运算符
    1. 比较运算符/关系运算符
    1. 逻辑运算符
    1. 位运算符
    1. 其它运算

4.2 算术运算符

算术运算符是对数值类型的变量进行运算的,比如:加减乘除。在 Go 程序中使用的非常多

4.2.1算术运算符的一览

在这里插入图片描述

4.2.2案例演示

案例演示算术运算符的使用。

+, - , * , / , %, ++, – , 重点讲解 /、%
自增:++
自减:–
在这里插入图片描述
演示 % 的使用特点

// 演示 % 的使用
// 看一个公式 a % b = a - a / b * b
fmt.Println("10%3=", 10 % 3) // =1
fmt.Println("-10%3=", -10 % 3) // = -10 - (-10) / 3 * 3 = -10 - (-9) = -1
fmt.Println("10%-3=", 10 % -3) // =1
fmt.Println("-10%-3=", -10 % -3) // =-1 

在这里插入图片描述

4.2.3算术运算符使用的注意事项
  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.2.4课堂练习1

4.2.5课堂练习2
  1. 假如还有 97 天放假,问:xx 个星期零 xx 天
  2. 定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏
    温度对应的摄氏温度。
package main

import "fmt"

func main() {
	days := 97
	week := days / 7
	day := days % 7
	fmt.Printf("%d个星期%d天\n", week, day)

	var huashi float64 = 134.2
	var sheshi float64 = 5.0 / 9 * (huashi - 100)
	fmt.Printf("华氏度:%f转换为摄氏度:%f\n", huashi, sheshi)
}

4.3 关系运算符(比较运算符)

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

在这里插入图片描述

4.3.3案例演示

在这里插入图片描述

4.3.4关系运算符的细节说明

细节说明

  1. 关系运算符的结果都是 bool 型,也就是要么是 true,要么是 false。
  2. 关系运算符组成的表达式,我们称为关系表达式: a > b
  3. 比较运算符"=="不能误写成 “=” !!

4.4 逻辑运算符

4.4.1基本介绍

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

4.4.2逻辑运算的说明

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.4.4注意事项和细节说明
1) &&也叫短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false
2) ||也叫短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true
  1. 案例演示
    在这里插入图片描述

4.5 赋值运算符

4.5.1基本的介绍

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

4.5.2赋值运算符的分类

在这里插入图片描述
在这里插入图片描述

4.5.3赋值运算的案例演示

案例演示赋值运算符的基本使用。

  1. 赋值基本案例
  2. 有两个变量,a 和 b,要求将其进行交换,最终打印结果
  3. += 的使用案例
  4. 案例

在这里插入图片描述

4.5.4赋值运算符的特点
  1. 运算顺序从右往左
    在这里插入图片描述

  2. 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值
    在这里插入图片描述

  3. 复合赋值运算符等价于下面的效果
    比如:a += 3 等价于 a = a + 3

4.5.5面试题

有两个变量,a和 b,要求将其进行交换,但是不允许使用中间变量,最终打印结果
在这里插入图片描述


4.6 位运算符

在这里插入图片描述


其它运算符

在这里插入图片描述
在这里插入图片描述

4.7.1课堂案例

案例 1:求两个数的最大值

案例 2:求三个数的最大值
在这里插入图片描述


4.8 特别说明

在这里插入图片描述
举例说明,如果在 golang中实现三元运算的效果。
在这里插入图片描述


4.9 运算符的优先级

4.9.1运算符的优先级的一览表

在这里插入图片描述

4.9.2对上图的说明
  1. 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
  2. 只有单目运算符、赋值运算符是从右向左运算的。
  3. 梳理了一个大概的优先级
  • 1:括号,++, –
  • 2: 单目运算
  • 3:算术运算符
  • 4:移位运算
  • 5:关系运算符
  • 6:位运算符
  • 7:逻辑运算符
  • 8:赋值运算符
  • 9:逗号

4.10键盘输入语句

4.10.1 介绍

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

4.10.2 步骤

1) 导入fmt包
2) 调用fmt包中的fmt.Scanln()或者fmt.Scanf()
在这里插入图片描述

在这里插入图片描述


4.10.3 案例演示:

要求:可以从控制台接收用户信息,【姓名,年龄,薪水, 是否通过考试 】。

  1. 使用 fmt.Scanln() 获取
    在这里插入图片描述
  2. 使用fmt.Scanf()获取
    在这里插入图片描述

4.11 进制

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

  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 不区分大小写。
    在这里插入图片描述
4.11.1 进制的图示

请添加图片描述
请添加图片描述

4.11.2 进制转换的介绍

请添加图片描述

4.11.3其它进制转十进制

请添加图片描述

4.11.4二进制如何转十进制请添加图片描述
4.11.5八进制如何转十进制

请添加图片描述

4.11.616进制转成10进制

请添加图片描述

4.11.7其它进制转10进制的课堂练习

请添加图片描述

4.11.8十进制如何转成其它进制请添加图片描述
4.11.9十进制如何转二进制

请添加图片描述

4.11.10十进制转成八进制

请添加图片描述

4.11.11十进制转十六进制

请添加图片描述

4.11.13二进制转换成八进制、十六进制

请添加图片描述

请添加图片描述

4.11.16八进制、十六进制转成二进制

请添加图片描述


4.12位运算

4.12.1位运算的思考题

1)请看下面的代码段,回答a,b,c,d结果是多少?

func main(){

	var a int = 1 >>2
	var b int =-1 >>2
	var c int = 1 <<2
	var d int =-1 <<2
	//a,b,c,d结果是多少
	fmt.Println("a=",a)
	fmt.Println("b=",b)
	fmt.Println("c=",c)
	fmt.Println("d=",d)

	fmt.Println(2&3)
	fmt.Println(2|3)
	fmt.Println(13&7)
	fmt.Println(5|4)
	fmt.Println(-3^3)
}
4.12.2 二进制在运算中的说明

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

4.12.3原码、反码、补码

在计算机运算的时候,都是以补码的方式来运算的

请添加图片描述

4.12.4位运算符和移位运算符

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值