算数运算符
func main() {
var a=10
var b=1
fmt.Println(a+b)
fmt.Println(a-b)
fmt.Println(a*b)
fmt.Println(a/b)
fmt.Println(a%b)
//++(自增)和--(自减)在go语言中是独立的语句,不是运算符
a++
fmt.Println(a)
a--
fmt.Println(a)
}
关系运算符
func main() {
var a = 10
var b = 1
if a > b {
fmt.Println("a>b")
}
if a >= b {
fmt.Println("a>=b")
}
if b<a{
fmt.Println("b<a")
}
if b<=a{
fmt.Println("b<=a")
}
if b==1{
fmt.Println("b==1")
}
if b!=a{
fmt.Println("b!=a")
}
}
逻辑运算符
func main() {
var a=true
if a && true{
fmt.Println("a && true")
}
if a || true{
fmt.Println("b && true")
}
if !a {
fmt.Println("!a")
}
}
位运算符
位运算符对整数在内存中的二进制位进行操作
使用场景:ip计算(192.168.1.1)、权限计算、(0644)




func main() {
//5的二进制数:101
//2的二进制数:010
var a=2
var b=5
//参与运算的两数对应的二进制相与(两位数均为1才为1)
fmt.Println(a&b)//从左往右进行与运行,比较是否都是1;对比结果:000 打印结果:0
//参与运算的两数对应的二进制相或(两位数有一个为1就为1)
fmt.Println(a|b)//从左往右进行与运行,比较是否都是1;对比结果:111 打印结果:7
//参与运算的两数对应的二进制相异或,当对应的二进制位相异时,结果为1(两位不一样则为1)
fmt.Println(a^b)//从左往右进行与运行,比较是否都是1;对比结果:111 打印结果:7
//将二进制位数向左移动指定的位数
fmt.Println(b<<1)//左移指定位数,对比结果:1010 打印结果:10
fmt.Println(1<<10)//左移指定位数,对比结果:10000000000 打印结果:1024
//将二进制位数向右移动指定的位数
fmt.Println(b>>1)//右移指定位数,对比结果:10 打印结果:2
fmt.Println(b>>2)//右移指定位数,对比结果:1 打印结果:1
fmt.Println(b>>3)//右移指定位数,对比结果:0 打印结果:0
var m=int8(1)//只能存八位
fmt.Println(m<<10)//左移指定位数,对比结果:10000000000 打印结果:0 注意:这里的变量申明的是int8,只有八位,左移十位超出了,只能装八位 00000000 打印结果:0
}
赋值运算符
func main() {
var x int
x = 10
fmt.Println(x)
x+=1
fmt.Println(x)
x-=1
fmt.Println(x)
x*=1
fmt.Println(x)
x/=1
fmt.Println(x)
x%=1
fmt.Println(x)
x<<=1
fmt.Println(x)
x>>=1
fmt.Println(x)
x&=1
fmt.Println(x)
x|=1
fmt.Println(x)
x^=1
fmt.Println(x)
}
165

被折叠的 条评论
为什么被折叠?



