go 语言基础之运算符
go 语言里数字加减乘除取余求幂运算
package main
import (
"fmt"
"math"
)
func main(){
var (
a = 8
b = 5
)
fmt.Println(a+b)
fmt.Println(a-b)
fmt.Println(a*b)
fmt.Println(a/b)
fmt.Println(a%b)
// 函数机制go 的幂运算必须是浮点型数字
fmt.Println(math.Pow(float64(a),float64(b)))
}
执行结果
PS D:\golang\goproject\src\lnhgo> go run day2\demo05\main.go
13
3
40
1
3
32768
++、--
package main
import (
"fmt"
//"math"
)
func main(){
var (
a = 8
b = 5
)
// fmt.Println(a+b)
// fmt.Println(a-b)
// fmt.Println(a*b)
// fmt.Println(a/b)
// fmt.Println(a%b)
// // 函数机制go 的幂运算必须是浮点型数字
// fmt.Println(math.Pow(float64(a),float64(b)))
a++//a=a+1
b++//b=b+1
fmt.Println(a)
fmt.Println(b)
}
PS D:\golang\goproject\src\lnhgo> go run day2\demo05\main.go
9
6
关系运算符(GO是强类型语言,必须相同的变量才可以比较)
package main
import (
"fmt"
//"math"
)
func main(){
var (
a = 8
b = 5
)
fmt.Println(a==b)
fmt.Println(a!=b)
fmt.Println(a>=b)
fmt.Println(a>b)
fmt.Println(a<=b)
fmt.Println(a<b)
}
PS D:\golang\goproject\src\lnhgo> go run day2\demo05\main.go
false
true
true
true
false
false
逻辑运算符
&& 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 || 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 ! 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。
示例
package main
import (
"fmt"
//"math"
)
func main(){
age := 22
if age >18 && age< 60{ //两个条件都满足
fmt.Println("苦逼")
}else{
fmt.Println("不用上班")
}
if age<18|| age>60{
fmt.Println("不用上班")
}else{
fmt.Println("苦逼上班的")
}
//取反
t := false
fmt.Println(t)//false
fmt.Println(!t)//true
}
结果
PS D:\golang\goproject\src\lnhgo> go run day2\demo05\main.go
苦逼
苦逼上班的
false
true
位运算符针对二进制
运算符 描述 & 参与运算的两数各对应的二进位相与。(两位均为1才为1) | 参与运算的两数各对应的二进位相或。(两位有一个为1就为1) ^ 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。(两位不一样则为1) « 左移n位就是乘以2的n次方。 “a«b"是把a的各二进位全部左移b位,高位丢弃,低位补0。 » 右移n位就是除以2的n次方。 “a»b"是把a的各二进位全部右移b位。
示例
package main
import (
"fmt"
//"math"
)
func main(){
//5 的二进制 101
//2的二进制10
//&按位与(两位均为1才为1)
fmt.Println(5&2)//000
//|按位或(两位有1个为1就为1)
fmt.Println(5|2)//1117
//^参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。(两位不一样则为1)
fmt.Println(5|2)//1117
//<<左移n位就是乘以2的n次方。 “a«b"是把a的各二进位全部左移b位,高位丢弃,低位补0
fmt.Println(5<<2)//20
//>>右移n位就是除以2的n次方。 “a»b"是把a的各二进位全部右移b位。
fmt.Println(5>>2)//1
}
执行结果
PS D:\golang\goproject\src\lnhgo> go run day2\demo05\main.go
0
7
7
20
1
赋值运算符
运算符 描述 = 简单的赋值运算符,将一个表达式的值赋给一个左值 += 相加后再赋值 -= 相减后再赋值 *= 相乘后再赋值 /= 相除后再赋值 %= 求余后再赋值 «= 左移后赋值 »= 右移后赋值 &= 按位与后赋值 |= 按位或后赋值 ^= 按位异或后赋值
示例
package main
import (
"fmt"
//"math"
)
func main(){
x :=10
x +=1 //x=x+1
x -=1 //x=x-1
x *=2 //x=x*2
x /=2 //x=x/2
x %=2 //x=x%2
x <<=2 //x =x<<2
x &=2 //x = x & 2
x |=3 //x= x| 2
x ^=4 //x= x^2
x >>=2 //x=x>>2
fmt.Println(x)
}
草都可以从石头缝隙中长出来更可况你呢

浙公网安备 33010602011771号