运算符
教程地址:点击去往视频教程
1. 算术运算符
运算符 | 描述 |
---|---|
+ | 相加 |
- | 相减 |
* | 相乘 |
/ | 相除 |
% | 求余 |
例子:
func main() {
var a int = 21
var b int = 10
var c int
c = a + b
fmt.Printf("相加: %d\n", c) //31
c = a - b
fmt.Printf("相减: %d\n", c) // 11
c = a * b
fmt.Printf("相乘: %d\n", c) // 210
div := float64(a) / float64(b)
fmt.Printf("相除: %.2f\n", div) // 2.10
c = a % b
fmt.Printf("求余: %d\n", c) // 1
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2. 关系运算符
运算符 | 描述 |
---|---|
== | 检查两个值是否相等,如果相等返回 True 否则返回 False。 |
!= | 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 |
> | 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 |
>= | 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 |
< | 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 |
<= | 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 |
例子:
func main() {
var a int = 21
var b int = 10
compare(a, b)
}
func compare(a, b int) {
if a == b {
fmt.Println("a 等于 b")
}
if a != b {
fmt.Println("a 不等于 b")
}
if a > b {
fmt.Println("a 大于 b")
}
if a < b {
fmt.Println("a 小于 b")
}
if a >= b {
fmt.Println("a 大于等于 b")
}
if a <= b {
fmt.Println("a 小于等于 b")
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
3. 逻辑运算符
运算符 | 描述 |
---|---|
&& | 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 |
ll | 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 |
! | 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。 |
func main() {
var a bool = true
var b bool = false
if a && b {
fmt.Println("两个都为true,才进来")
}
if a || b {
fmt.Println("有一个为true,就进来")
}
if !a {
fmt.Println("a为false,进来这里")
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
4. 位运算符
位运算符对整数在内存中的二进制位进行操作。
运算符 | 描述 |
---|---|
& | 参与运算的两数各对应的二进位相与。(两位均为1才为1) |
l | 参与运算的两数各对应的二进位相或。(两位有一个为1就为1) |
^ | 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。(两位不一样则为1) |
<< | 左移n位就是乘以2的n次方。“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。 |
>> | 右移n位就是除以2的n次方。“a>>b”是把a的各二进位全部右移b位。 |
func main() {
//1乘以2的n次方
fmt.Printf("%d \n", 1<<3)
//8除以2的n次方
fmt.Printf("%d \n", 8>>3)
//0000 0100 0000 1101 = 0000 0100 = 4
fmt.Printf("&运算%d \n", 4&13)
//0000 0100 0000 1101 = 0000 1101 = 13
fmt.Printf("|运算%d \n", 4|13)
//0000 0100 0000 1101 = 0000 1001 = 9
fmt.Printf("^运算%d \n", 4^13)
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
5. 赋值运算符
运算符 | 描述 |
---|---|
= | 简单的赋值运算符,将一个表达式的值赋给一个左值 |
+= | 相加后再赋值 |
-= | 相减后再赋值 |
*= | 相乘后再赋值 |
/= | 相除后再赋值 |
%= | 求余后再赋值 |
<<= | 左移后赋值 |
>>= | 右移后赋值 |
&= | 按位与后赋值 |
l= | 按位或后赋值 |
^= | 按位异或后赋值 |