Go运算符

本文详细介绍了Go语言中的算术运算符、关系运算符及其优先级,包括整数除法、浮点数运算、取余操作以及逻辑运算。此外,还探讨了位运算,如按位与、按位或、按位异或和位移,并解释了补码、反码和原码的概念。同时,展示了如何从用户终端获取输入数据。

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

Go运算符

算术运算符
  • 对数值型变量进行运算

  • package main
    import(
    	"fmt"
    )
    
    func main(){
    	// /的使用
    	//如果运算的数都是整数,那么除后去掉小数部分,保留整数部分
    	fmt.Println(10/4)//2
    
    	var n1 float32 = 10/4 //n1为2
    	fmt.Println(n1)
    
    	//如果希望保留小数部分,需要有浮点数参与运算
    	var n2 float32 = 10.0/4
    	fmt.Println(n2)
    
    	// %的使用
    	// a % b = a - a / b * b
    	fmt.Println("10%3=",10%3)//1
    	fmt.Println("-10%3=",-10%3)//-1
    	fmt.Println("10%-3=",10%-3)//1
    	fmt.Println("-10%-3=",-10%-3)//-1
    }
    
  • package main
    import(
    	"fmt"
    )
    
    //Golang的++和--只能写在变量的后面,不能写在变量的前面
    
    func main(){
    	//在Golang中++和--只能独立使用
    	var i int = 8
    	//var a int = i++错误
    	var a int
    	i++
    	a=i
    	fmt.Println(a)
    }
    
关系(比较)运算符
  • 关系运算符的结果都是bool型

  • package main
    import(
    	"fmt"
    )
    
    func main(){
    	var n1 int = 9
    	var n2 int = 8
    
    	fmt.Println(n1==n2)
    	fmt.Println(n1!=n2)
    	fmt.Println(n1>=n2)
    	fmt.Println(n1<=n2)
    	fmt.Println(n1<n2)
    	fmt.Println(n1>n2)
    }
    
运算符优先级
分类描述关联性
后缀() [] -> ++ –左到右
单目+ - ! ~ (type)* & sizeof右到左
乘法* / %左到右
加法+ -左到右
移位<< >>左到右
关系== !=左到右
相等(关系)&左到右
按位AND^左到右
按位OR|左到右
逻辑AND&&左到右
逻辑OR||左到右
赋值运算符= += -= *= /= %= >>= <<= &= ^= |=右到左
逗号,左到右
  • 上一行运算符总优先于下一行
获取用户终端输入
package main
import(
	"fmt"
)

func main(){
	//方式一 fmt.Scanln
	var name string
	var age byte
	var sal float32
	var isPass bool
	fmt.Println("输入姓名:")
	fmt.Scanln(&name)

	fmt.Println("输入年龄:")
	fmt.Scanln(&age)

	fmt.Println("输入薪水:")
	fmt.Scanln(&sal)

	fmt.Println("是否通过考试:")
	fmt.Scanln(&isPass)

	fmt.Printf("姓名:%v\t年龄:%v\t薪水:%v\t是否通过考试:%v\n",name,age,sal,isPass)

	//方式二fmt.Scanf,可以指定格式输入
	fmt.Println("请输入信息")
	fmt.Scanf("%s %d %f %t",&name,&age,&sal,&isPass)
	fmt.Printf("姓名:%v\t年龄:%v\t薪水:%v\t是否通过考试:%v\n",name,age,sal,isPass)
}
补码、反码、原码
  • 有符号
    • 二进制的最高位为符号位,0表示正数,1表示负数
    • 正数的补码、反码、原码都一样
    • 负数的反码=原码符号位不变,其他位取反
    • 负数的补码=反码+1
    • 0的补码、反码都为0
    • 计算机在运算时,是以补码形式运算
位运算
位运算符
运算符描述
&双目运算符,参与运算的两数各对应的二进位相与。同时为1,结果为1,否则为0
|双目运算符,参与运算的两数各对应的二进位相或。有一个为1,结果为1,否则为0
^双目运算符,参与运算的两数各对应的二进位相异或,当二进位不同时,结果为1,否则为0
<<双目运算符,把<<左边的运算数的各二进位全部左移若干位。高位丢弃,低位补0.左移n位就是乘以2的n次方
>>双目运算符。把>>左边的运算数的各二进位全部右移若干位,右移n位就是除以2的n次方
  • <<:低位溢出,符号位不变,用符号位补溢出的高位 >>:符号位不变,低位补0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值