golang 运算符

 1 /*
 2 算术运算符 : + - * / % ++ --
 3 
 4 关系运算符 : == != > < >= <=
 5 
 6 逻辑运算符 : && || !
 7 
 8 赋值运算符 : = += -= *= /= %= <<= >>= &= ^= |=
 9 
10 其他运算符 : & *
11 & : 获取变量的实际地址
12 var a int = 10; fmt.Println(&a)//20818a220
13 * : 是一个指针变量 (声明指针(引用)变量)
14 var ip *int = &a; // fmt.Println(*ip)//10
15 var val string = "sb" fmt.Println(*&val)//sb
16 
17 
18 
19 位运算符 : & | ^ << >>
20 
21 假定 A = 60; B = 13;
22 其二进制数转换为
23 A = 0011 1100
24 B = 0000 1101
25 
26 A&B = 0000 1100
27 A|B = 0011 1101
28 A^B = 0011 0001
29 
30 假定 A = 60; B = 13;
31 & : 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与
32 (A & B) 结果为 12, 二进制为 0000 1100
33 
34 | : 按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或
35 (A | B) 结果为 61, 二进制为 0011 1101
36 
37 ^ : 按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1
38 (A ^ B) 结果为 49, 二进制为 0011 0001
39 
40 << : 左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0
41 A << 2 结果为 240 ,二进制为 1111 0000
42 
43 >> : 右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
44 A >> 2 结果为 15 ,二进制为 0000 1111
45 */