-
Notifications
You must be signed in to change notification settings - Fork 56
/
Copy pathmain.go
43 lines (39 loc) · 1.64 KB
/
main.go
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package main
import (
"fmt"
)
//赋值运算符和位运算符
//特点运算顺序从右往左
//赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值
//位运算符
//&按位与运算符是双目运算符 功能是对参与运算的两个数进行二进制位与
//|按位或运算符是双目运算符 功能是对参与运算的两个数进行二进制位或
//^按位异或运算符是双目运算符 功能是对参与运算的两个数进行二进制位相异或 当二进制位不同时结果为1否则为0
//<<左移运算符是双目运算符 其功能是把"<<"左边的运算数的各二进制位全部左移若干位,高位丢弃,低位补0。左移n位就是乘以2的n次方
//>>右移运算符是双目运算符 其功能是把">>"左边的运算数的各二进制位全部右移若干位。右移n位就是除以2的n次方
func main() {
//有两个变量,a 和 b,要求将其进行交换,但是不允许使用中间变量,最终打印结果
var a int = 2
var b int = 1
a = a + b
b = a - b
a = a - b
fmt.Printf("a=%v, b=%v", a, b);
}
//其他运算符
//& 返回变量的存储地址 &a将给出变量的实际地址
//* 指针变量 *a 是一个指针变量
//go不支持三元运算符
//运算符关联性指定,在包含多个具有相同优先级别的运算符的表达式中,操作数与其左侧还是右侧的操作数组合。
//只有单目运算符、赋值运算符是从右向左运算的。
//大概的优先级
// 括号 ++ --
// 单目运算
// 算数运算
// 移位运算
// 关系运算
// 位运算符
// 逻辑运算
// 赋值运算
// 逗号
// 以上优先级别从高到低