一、运算符的基本介绍
1
算术运算符 (
+ - * / % ++ --
)
2
赋值运算符 (
= += -= /= %= -= *=
)
3
比较
/
关系运算符 (
== != <=> <= >=
)
4
逻辑运算符 (
&& (逻辑与) ||(逻辑或) !(逻辑非)
)
5
位运算符
6
其它运算符
二、算数运算符
算术运算符是对数值类型的变量进行运算的
+加(正) -减(负) *乘 /除 %取模(求余) ++ 自增 --自减 +字符串拼接
三、运算符使用注意事项
1 统一类型才能运算
2 除号 / 整数之间做除法,结果是整数,小数部分被舍弃了
func main() {
// 运算符注意点
// 除号 /
n1 := 10
n2 := 3
n3 := n1 / n2
fmt.Println(n3) // 3
n4 := 10.0
n5 := 3.0
n6 := n4 / n5
fmt.Println(n6) // 3.3333333333333335
n7 := float64(n1) / float64(n2)
fmt.Println(n7) // 3.3333333333333335
}
4 go语言里,++,--只能单独使用,不能参与到运算中去(只能是 i ++ 独立一行,不能 num := i++)
5 go语言里 只有后++ 没有前++
四、关系运算符
1
关系运算符的结果都是
bool
型,也就是要么是
true
,要么是
false
2
关系表达式 经常用在
if
结构
的条件中或
循环结构
的条件中
3 == 等于 != 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于
4
关系运算符的结果都是
bool
型,也就是要么是
true
,要么是
false
。
5
关系运算符组成的表达式,我们称为关系表达式:
a > b
6
比较运算符
"=="
不能误写成
"=" !!
五、逻辑运算符
1)用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个
bool
值
2)&& 与 || 或 !非
3)
&&
也叫
短路与
:
如果第一个条件为
false
,则
第二个条件不会判断
,最终结果为
false
4) ||
也叫
短路或
:如果
第一个条件为
true
,则
第二个条件不会判断
,最终结果为
true
六、赋值运算符
1)赋值运算符就是将某个运算后的值,赋给指定的变量。
2) = 赋值 += 相加后赋值 -= 相减后赋值 *= 相乘后赋值 %= 求余后赋值
3)<<= 左移后赋值 >>=右移后赋值 &= 按位与后赋值 c&=2等于c=c&2 ^=按位异或后赋值 |=按位或后赋值
4) 赋值
运算顺序从右往左
5)
赋值运算符的左边 只能是
变量
,
右边 可以是
变量、表达式、常量值
七、位运算符
![](https://img-blog.csdnimg.cn/direct/52a421cf245f42e9b4b2193dd1ce02f5.png)
八、其他运算符
1)&返回变量存储地址
2) *指针变量
3) 特别,go不支持三元运算符
九、算符优先级
1
:括号,
++, --
2:
单目运算
3
:算术运算符
4
:移位运算
5
:关系运算符
6
:位运算符
7
:逻辑运算符
8
:赋值运算符
9
:逗号
十、进制
1)
二进制:
0,1
,满
2
进
1
。
在
golang
中,不能直接使用二进制来表示一个整数,它沿用了
c
的特点。
2)
十进制:
0-9
,满
10
进
1
。
3)
八进制:
0-7
,满
8
进
1.
以数字
0
开头表示。
4)
十六进制:
0-9
及
A-F
,满
16
进
1.
以
0x
或
0X
开头表示。
此处的
A-F
不区分大小写。
十一、二八十六转十进制
![](https://img-blog.csdnimg.cn/direct/38cb297d020f4be9a9bb3bfb03486dc0.png)
![](https://img-blog.csdnimg.cn/direct/5a87fdfc293443f89d5b5823cc701b8d.png)
![](https://img-blog.csdnimg.cn/direct/8044799fae1a427aba704762a5af34dd.png)
十二、十进制转二八十六
![](https://img-blog.csdnimg.cn/direct/e8b92224c587472b97f6f446dd5d47d0.png)
![](https://img-blog.csdnimg.cn/direct/a1505432d517439bb967e99ba789eaca.png)
![](https://img-blog.csdnimg.cn/direct/b32e8362bbc747f9964d5f4863214541.png)
十二、原码 反码 补码
![](https://img-blog.csdnimg.cn/direct/133a7f765062417a9b49bc43df1c2878.png)
十三、3个位运算符和2个移位运算符
按位与
&
:
两位全为1,结果为
1
,否则为
0
按位或
|
:
两位有一个为
1
,结果为
1
,否则为
0
按位异或
^
:
两位一个为
0,
一个为
1
,结果为
1
,否则为
0
![](https://img-blog.csdnimg.cn/direct/7a168d62873f45358c23b5e959ddeb04.png)
>>
、
<<
右移和左移
,
运算规则
:
右移运算符
>>
:
低位溢出
,
符号位不变
,
并用符号位补溢出的高位
左移运算符
<<:
符号位不变
,
低位补
0