go语言的运算符
1.算术运算符
运算符 |
描述 |
+ |
相加 |
- |
相减 |
* |
相乘 |
/ |
相除 |
% |
求余 |
- 注意: ++(自增)和 --(自减)在 Go 语言中并不是运算符,而是单独的语句
2.关系运算符
运算符 |
描述 |
== |
检查两个值是否相等,如果相等返回 True 否则返回 False。 |
!= |
检查两个值是否不相等,如果不相等返回 True 否则返回 False。 |
> |
检查左边值是否大于右边值,如果是返回 True 否则返回 False。 |
>= |
检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 |
< |
检查左边值是否小于右边值,如果是返回 True 否则返回 False。 |
<= |
检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 |
3.逻辑运算符
运算符 |
描述 |
&& |
逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 |
|| |
逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 |
! |
逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。 |
4.位运算符
运算符 |
描述 |
& |
参与运算的两数各对应的二进位相与。(两位均为1才为1,否则为0) |
| |
参与运算的两数各对应的二进位相或。(两位有一个为1就为1) |
^ |
参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。(两位不一样则为1) |
<< |
左移n位就是乘以2的n次方。“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。 |
>> |
右移n位就是除以2的n次方。“a>>b”是把a的各二进位全部右移b位。 |
5.赋值运算符
运算符 |
描述 |
= |
简单的赋值运算符,将一个表达式的值赋给一个左值 |
+= |
相加后再赋值 |
-= |
相减后再赋值 |
*= |
相乘后再赋值 |
/= |
相除后再赋值 |
%= |
求余后再赋值 |
<<= |
左移后赋值 |
>>= |
右移后赋值 |
&= |
按位与后赋值 |
|= |
按位或后赋值 |
^= |
按位异或后赋值 |
6.实例演示-运算符
package main
import "fmt"
// 算数运算
func suanshuDemo() {
n1 := 20
n2 := 5
fmt.Println(n1 + n2)
fmt.Println(n1 - n2)
fmt.Println(n1 * n2)
fmt.Println(n1 / n2)
fmt.Println(n1 % n2)
n1++
n2--
fmt.Println(n1)
fmt.Println(n2)
}
// 关系运算
func guanxiDemo() {
n1 := 20
n2 := 5
fmt.Println(n1 == n2)
fmt.Println(n1 != n2)
fmt.Println(n1 > n2)
fmt.Println(n1 >= n2)
fmt.Println(n1 < n2)
fmt.Println(n1 <= n2)
}
// 逻辑运算
func luojiDemo() {
n1 := true
n2 := false
fmt.Println(n1 && n2)
fmt.Println(n1 || n2)
fmt.Println(!n1)
fmt.Println(!n2)
}
// 位运算 1101--13 11--3
func weiDemo() {
n1 := 13
n2 := 3
fmt.Printf("13的二进制为%b\n", n1)
fmt.Printf("3的二进制为%b\n", n2)
fmt.Printf("13和3进行位运算 &,结果为 %b,%v\n", n1&n2, n1&n2)
fmt.Printf("13和3进行位运算 |,结果为 %b,%v\n", n1|n2, n1|n2)
fmt.Printf("13和3进行位运算 ^,结果为 %b,%v\n", n1^n2, n1^n2)
fmt.Printf("3进行位运算 << 左移10位,结果为 %b,%v\n", 3<<10, 3<<10)
fmt.Printf("3进行位运算 >> 右移1位,结果为 %b,%v\n", 3>>1, 3>>1)
}
// 赋值运算
func fuzhiDemo() {
num := 10
x := 2
num = num * x
fmt.Println(num)
num /= x
fmt.Println(num)
}
func main() {
// suanshuDemo()
// guanxiDemo()
// luojiDemo()
// weiDemo()
// fuzhiDemo()
}
10.参考地址
https://www.liwenzhou.com/posts/Go/03_operators/