Go语言核心编程-运算符和进制转换

这篇具有很好参考价值的文章主要介绍了Go语言核心编程-运算符和进制转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第 4 章 运算符

4.1 运算符的基本介绍

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

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

4.2 算术运算符

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

4.2.1算术运算符的一览表

Go语言核心编程-运算符和进制转换

4.2.2案例演示

  • 案例演示算术运算符的使用。
    +, - , * , / , %, ++, – , 重点讲解 /、%
    自增:++
    自减:–
  • 演示 / 的使用的特点
    Go语言核心编程-运算符和进制转换
  • 演示 % 的使用特点
    /
/ 演示 % 的使用
// 看一个公式 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
  • ++ 和 --的使用
    Go语言核心编程-运算符和进制转换

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

  1. 对于除号 “/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃
    小数部分。 例如: x := 19/5 ,结果是 3

  2. 当对一个数取模时,可以等价 a%b=a-a/b*b , 这样我们可以看到 取模的一个本质运算。

  3. Golang 的自增自减只能当做一个独立语言使用时,不能这样使用
    Go语言核心编程-运算符和进制转换

  4. Golang 的++ 和 – 只能写在变量的后面,不能写在变量的前面,即:只有 a++ a-- 没有 ++a
    –a
    Go语言核心编程-运算符和进制转换

  5. Golang 的设计者去掉 c / java 中的 自增自减的容易混淆的写法,让 Golang 更加简洁,统一。(强
    制性的)

4.2.4课堂练习 1

Go语言核心编程-运算符和进制转换

4.2.5课堂练习 2

  1. 假如还有 97 天放假,问:xx 个星期零 xx 天
  2. 定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏
    温度对应的摄氏温度
    Go语言核心编程-运算符和进制转换

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

4.3.1基本介绍

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

4.3.2关系运算符一览图

Go语言核心编程-运算符和进制转换

4.3.3案例演示

Go语言核心编程-运算符和进制转换

4.3.4关系运算符的细节说明

细节说明

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

4.4 逻辑运算符

4.4.1基本介绍

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

4.4.2逻辑运算的说明

Go语言核心编程-运算符和进制转换

4.4.3案例演示

Go语言核心编程-运算符和进制转换
Go语言核心编程-运算符和进制转换

4.4.4注意事项和细节说明

  1. &&也叫短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false
  2. ||也叫短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true
  3. 案例演示
    Go语言核心编程-运算符和进制转换

4.5 赋值运算符

4.5.1基本的介绍

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

4.5.2赋值运算符的分类

Go语言核心编程-运算符和进制转换

4.5.3赋值运算的案例演示

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

  1. 赋值基本案例
  2. 有两个变量,a 和 b,要求将其进行交换,最终打印结果
  3. += 的使用案例
  4. 案例
    Go语言核心编程-运算符和进制转换

4.5.4赋值运算符的特点

  1. 运算顺序从右往左
    Go语言核心编程-运算符和进制转换
  2. 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值
    Go语言核心编程-运算符和进制转换
  3. 复合赋值运算符等价于下面的效果
    比如:a += 3 等价于 a = a + 3

4.5.5面试题

有两个变量,a 和 b,要求将其进行交换,但是不允许使用中间变量,最终打印结果

var a,b =1,3
	b,a=a,b

另一种写法
Go语言核心编程-运算符和进制转换

4.6 位运算符

Go语言核心编程-运算符和进制转换

4.7 其它运算符说明

Go语言核心编程-运算符和进制转换
举例说明:
Go语言核心编程-运算符和进制转换
4.7.1课堂案例
案例 1:求两个数的最大值
Go语言核心编程-运算符和进制转换
案例 2:求三个数的最大值
Go语言核心编程-运算符和进制转换

4.8 特别说明

Go语言核心编程-运算符和进制转换
Go语言核心编程-运算符和进制转换

4.9 运算符的优先级

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

Go语言核心编程-运算符和进制转换

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()
    Go语言核心编程-运算符和进制转换
    Go语言核心编程-运算符和进制转换

4.10.3 案例演示:

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

  1. 使用 fmt.Scanln() 获取
    Go语言核心编程-运算符和进制转换
  2. 使用 fmt.Scanf() 获取
    Go语言核心编程-运算符和进制转换

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 不区分大小写
    Go语言核心编程-运算符和进制转换

4.11.1 进制的图示

Go语言核心编程-运算符和进制转换
Go语言核心编程-运算符和进制转换

4.11.2 进制转换的介绍

Go语言核心编程-运算符和进制转换

4.11.3 其它进制转十进制

Go语言核心编程-运算符和进制转换

4.11.4 二进制如何转十进制

Go语言核心编程-运算符和进制转换

4.11.5 八进制转换成十进制示例

Go语言核心编程-运算符和进制转换

4.11.6 16 进制转成 10 进制

Go语言核心编程-运算符和进制转换

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

  • 课堂练习:请将
    二进制: 110001100 转成 十进制
    八进制: 02456 转成十进制
    十六进制: 0xA45 转成十进制
		//二进制
	binary := 0*int(math.Pow(2, 0)) +
		0*int(math.Pow(2, 1)) +
		1*int(math.Pow(2, 2)) +
		1*int(math.Pow(2, 3)) +
		0*int(math.Pow(2, 4)) +
		0*int(math.Pow(2, 5)) +
		0*int(math.Pow(2, 6)) +
		1*int(math.Pow(2, 7)) +
		1*int(math.Pow(2, 8))
		//八进制
	octal := 6*int(math.Pow(8, 0)) +
		5*int(math.Pow(8, 1)) +
		4*int(math.Pow(8, 2)) +
		2*int(math.Pow(8, 3)) +
		0*int(math.Pow(8, 4))
		//十六进制
	hex := 5*math.Pow(16, 0) +
		4*math.Pow(16, 1) +
		10*math.Pow(16, 2)
	fmt.Println(binary, octal, hex)

4.11.8 十进制如何转成其它进制

Go语言核心编程-运算符和进制转换

4.11.9 十进制如何转二进制

Go语言核心编程-运算符和进制转换

4.11.10 十进制转成八进制

Go语言核心编程-运算符和进制转换

4.11.11 十进制转十六进制

Go语言核心编程-运算符和进制转换

4.11.12 课堂练习

  • 课堂练习:请将
    123 转成 二进制
    678 转成八进制
    8912 转成十六进制
func main() {

	//- 课堂练习:请将
	//123 转成 二进制
	var n int = 123
	binString := binary(n, 2)
	fmt.Println(binString)
	//678 转成八进制
	var n2 int = 678
	binString1 := binary(n2, 8)
	fmt.Println(binString1)
	//8912 转成十六进制
	var n3 int = 8912
	binString3 := binary(n3, 16)
	fmt.Println(binString3)
}

func binary(dec int, digit int) (binary string) {

	bin := make([]int, 0)
	var remainder int
	for {
		if dec > digit-1 {
			//fmt.Printf("%d = %d / 2,%d\n", n, n, n%2)
			remainder = dec % digit
			bin = append(bin, remainder)
			dec = dec / digit
		} else {
			bin = append(bin, dec)
			break
		}
	}
	for i, _ := range bin {
		remainder = bin[len(bin)-i-1]
		switch remainder {
		case 10:
			binary += "A"
		case 11:
			binary += "B"
		case 12:
			binary += "C"
		case 13:
			binary += "D"
		case 14:
			binary += "E"
		case 15:
			binary += "F"
		default:
			binary += fmt.Sprintf("%d", remainder)
		}
	}
	switch digit {

	case 8:
		binary = "0" + binary
	case 16:
		binary = "0X" + binary
	default:
	}
	return binary
}

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

Go语言核心编程-运算符和进制转换

4.11.14 二进制转换成八进制

Go语言核心编程-运算符和进制转换

4.11.15 二进制转成十六进制

Go语言核心编程-运算符和进制转换

  • 课堂练习
    课堂练习:请将
    二进制:11100101 转成 八进制
    二进制:1110010110 转成 十六进制

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

Go语言核心编程-运算符和进制转换

4.11.17 八进制转换成二进制

Go语言核心编程-运算符和进制转换

4.11.18 十六进制转成二进制

Go语言核心编程-运算符和进制转换

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)
}
  1. 请回答在 Golang 中,下面的表达式运算的结果是:
func main() {
	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 原码、反码、补码

Go语言核心编程-运算符和进制转换文章来源地址https://www.toymoban.com/news/detail-451639.html

4.12.4 位运算符和移位运算符

  • Golang 中有 3 个位运算
    分别是”按位与&、按位或|、按位异或^,它们的运算规则是:
    按位与& : 两位全为1,结果为 1,否则为 0
    按位或| : 两位有一个为 1,结果为 1,否则为 0
    按位异或 ^ : 两位一个为 0,一个为 1,结果为 1,否则为 0
  • 案例练习
    比如:2&3=? 2|3=? 2^3=?
    Go语言核心编程-运算符和进制转换
    Go语言核心编程-运算符和进制转换
  • Golang 中有 2 个移位运算符:
    >>、<< 右移和左移,运算规则:
    右移运算符 >>:低位溢出,符号位不变,并用符号位补溢出的高位
    左移运算符 <<: 符号位不变,低位补 0
  • 案例演示
a := 1 >> 2 // 0000 0001 =>0000 0000 = 0
c := 1 << 2 // 0000 0001 ==> 0000 0100 => 4

到了这里,关于Go语言核心编程-运算符和进制转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Go】Go 语言教程--GO语言运算符(七)

    往期教程: Go 语言教程–介绍(一) Go 语言教程–语言结构(二) Go 语言教程–语言结构(三) Go 语言教程–数据类型(四) Go 语言教程–语言变量(五) Go 语言教程–GO语言常量(六) 运算符用于在程序运行时执行数学或逻辑运算。 Go 语言内置的运算符有: 算术运算

    2024年02月12日
    浏览(41)
  • Go语言中的运算符

    运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 除法注意:如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分  取余注意    余数=被除数-(被除数/除数)*除数   注意: ++(自增)和--(自减)在Go语言中是单独的语句,并不是运算符。  且在 golang 中没有前

    2024年02月12日
    浏览(28)
  • 【30天熟悉Go语言】4 Go的变量、常量、运算符

    Go系列文章: GO开篇:手握Java走进Golang的世界 2 Go开发环境搭建、Hello World程序运行 3 Go编程规约和API包 Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html 变量相当于内存中一个数据存储空间的标识。 变量的使用分三步:声明、赋值、使用。 变量的声明 采用 var 变量名

    2024年02月07日
    浏览(36)
  • 入门人工智能 —— 学习一门编程语言 python 基础代码编写和运算符介绍(1)

    随着人工智能技术的快速发展,越来越多的年轻人开始关注这个领域。作为入门者,学习人工智能编程语言至关重要。这里将介绍人工智能编程语言Python的基础知识,帮助初学者更好地理解人工智能领域的基本概念和技术。 下面是一些入门 Python 编程语言的基本知识: 安装

    2024年02月09日
    浏览(46)
  • 单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.8 运算符

    1.算术运算符 运算符 名称 备注 + 加法运算符 双目运算,a + b - 减法运算符 双目运算,a - b * 乘法运算符 双目运算,a * b / 除法运算符 双目运算,a / b % 求余运算符 双目运算, a % b ++ 自增运算符 单目运算, a++ – 自减运算符 单目运算, a– 2.关系运算符 运算符 名称 数学中的表

    2024年02月12日
    浏览(31)
  • 第02章_变量与运算符(关键字,标识符,变量,基本数据类型,进制,运算符,字符集)

    定义: 被Java语言赋予了特殊含义,用做专门用途的字符串(或单词) HelloWorld案例中,出现的有 class 、 public 、 static 、 void 等,这些单词已经被Java定义好了。 特点:全部都是 小写字母 。 比较多,不需要死记硬背,学到哪里记到哪里即可。 官方地址:

    2024年01月22日
    浏览(45)
  • Go 运算符

    运算符用于对变量和值执行操作。 加号运算符(+)将两个值相加,如下面的示例所示: 示例代码: 尽管加号运算符通常用于将两个值相加,但它也可以用于将变量和值相加,或者将一个变量和另一个变量相加。 示例代码: 算术运算符用于执行常见的数学操作。 + :加法,

    2024年02月10日
    浏览(39)
  • 【Kotlin】类的继承 ② ( 使用 is 运算符进行类型检测 | 使用 as 运算符进行类型转换 | 智能类型转换 | Any 超类 )

    在 Kotlin 中 , 如果不确定一个 实例对象的类型 , 可以 使用 is 运算符进行判定 , 使用方法 上述用法可以判定 实例对象 是否是 判定类型 , 如果是 返回 true , 反之 返回 false ; 代码示例 : 在下面的代码中 , 调用 student is Person 判断 student 对象是否是 Person 类型 ; 执行结果 : 将 子类

    2024年02月03日
    浏览(38)
  • JavaSE-02【类型转换和运算符】

    自动转换:将取值范围小的类型自动提升为取回范围大的类型 案例:Demo01_DataType 强制类型转换:将取值范围大的类型,强制转换成取值范围小的类型 转换格式: 案例: 注意事项 1、算术运算符----四则与取模运算 2、算术运算符----加号的多种用法 3、案例 3、算术运算符---

    2024年02月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包