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)
}

  

posted @ 2026-06-04 15:52  烟雨楼台,行云流水  阅读(2)  评论(0)    收藏  举报