Golang 006

本文介绍了Go语言中的算术运算符,包括整数除法和浮点数除法的区别,以及%运算符的使用。还讲解了自增自减操作符的限制,如++和--必须放在变量后面。此外,文章涵盖了关系运算符、逻辑运算符的使用及特点,并举例说明了赋值运算符的复合用法。最后,文章提到了位运算符,如按位与、按位或、按位异或和移位运算,并展示了如何不使用中间变量交换两个变量的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运算符

算术运算符

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

一览表:

/ % 的使用

package main

import "fmt"

func main() {
	// / % 案例
	fmt.Println(10 / 4) // 运算结果为 2 , 因为除号两边都是整数
	fmt.Println(10.0 / 4.0)//浮点数参与之后,运行结果为 2.5
	var n1 float32 = 10.0 / 4
	fmt.Println(n1)
    
    //演示 % 的使用
	fmt.Println("10 % 3 = ", 10%3)
	fmt.Println("-10 % 3 = ", -10%3)
	fmt.Println("10 % -3 = ", 10%-3) //被除数的正负性决定了结果的正负性

}

++ – 的使用

	var i int = 10
	i++
	fmt.Println(i)//11
	i--
	fmt.Println(i)//10
算术运算符使用注意事项

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

2) 当对一个数取模时,可以等价 a%b=a-a/b*b

3) Golang的自增自减只等当作一个独立语言使用时,不能这样使用 b:=a++ 或 b:=a–或a = i++

4) Golang的++和-- 只能写在变量的后面,不能写在变量的前面,即:只有 a++ a-- 没有 ++a --a

5) Golang的设计者去掉 c / java中的 自增自减的容易混淆的写法。

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

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

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

3) 关系运算符组成的表达式称为关系表达式

4)比较运算符"==“不能误写成”="

逻辑运算符

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

&& :逻辑与

||:逻辑或

! :逻辑非

注意事项

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

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

赋值运算符

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

常规赋值运算符

= : 将一个表达式的值赋给左值

+=: 相加后再赋值 例:c+=a 等于 c=c+a

-= : 相减后再赋值

*= : 相乘后再赋值

/= : 相除后再赋值

%= : 求余后再赋值

<<= : 左移后赋值 C<<=2 等于 C=C<<2

>>= : 右移后赋值 C>>=2 等于 C=C>>2

&=: 按位与后赋值 C&=2 等于 C=C&2

^=: 按位异或后赋值 C^2 等于 C=C^2

|=: 按位或后赋值 C|=2 等于 C=C|2

赋值运算符的特点

1) 运算顺序从右往左

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

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

​ 比如:a+=3等价于a=a+3

不使用中间变量交换两个变量的值

package main
import (
    "fmt"
)
func main(){
    var a int = 10
    var b int = 20
    
    a = a + b
    b = a - b
    a = a - b
    
    fmt.Printf("a=%v b=%v", a, b)
}

运算符优先级

1)运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。

2)只有单目运算符、赋值运算符是从右向左运算的。

位运算符

& : 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进制相与。

运算规则是:同时为1,结果为1,否则为零

| : 按位或运算符"|"是双目运算符。其功能是参与运算的两数各对应的二进位相或。

运算规则是:有一个为1,结果为1,否则为零

^ : 按位异或运算符"^"是双目运算符。其功能是参与运算的两数各对应的二进制相异或。

运算规则是: 当二进位不同时,结果为1,否则为0

<<: 左移运算符"<<“是双目运算符。其功能把”<<"左边的运算数的各二进制全部左移若干位,高位丢弃,低位补0。左移n位就是乘以2的n次方。

>>: 右移运算符">>“是双目运算符。其功能是把”>>"左边的运算数的各二进制全部右移若干位,右移n位就是除以2的n次方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七秒半、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值