GO运算符
Go 语言内置的运算符有:- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符
算术运算符
假定 A 值为 10,B 值为 20注意:
- 没有++a,只有a++
^
在go语言里不表示次方运算,表示位运算“异或”,想要次方运算,可以调用math.Pow(x, y)
,表示xy
比较运算符
和其他主流语言没差别,但具体能不能比,小部分分析一下数组:
在c语言中,数组arr,arr会转换成指针,是引用类型,但在golang中,不是的,就是值类型,可以进行比较
1. 但是要求是相同维数,相同元素个数,才可以进行比较,否则编译错误
2. 每个元素都相同才相等
逻辑运算符
下表列出了所有Go语言的逻辑运算符。假定 A 值为 True,B 值为 False。没什么差别
?位运算符
不会使用位运算符对整数在内存中的二进制位进行操作。()
- 按序依次对二进制数进行操作
实例:假定 A = 60; B = 13; 其二进制数转换为: - Go 语言支持的位运算符如下表所示。假定 A 为60,B 为13:
运算符 | 描述 | 实例 | |||
---|---|---|---|---|---|
& | 按位与运算符”&”是双目运算符。 其功能是参与运算的两数各对应的二进位相与。 | (A & B) 结果为 12, 二进制为 0000 1100 | |||
按位或运算符” | “是双目运算符。 其功能是参与运算的两数各对应的二进位相或 | (A | B) 结果为 61, 二进制为 0011 1101 | ||
^ | 按位异或运算符”^”是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 | (A ^ B) 结果为 49, 二进制为 0011 0001 | |||
<< | 左移运算符”<<”是双目运算符。左移n位就是乘以2的n次方。 其功能把”<<”左边的运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0。 | A << 2 结果为 240 ,二进制为 1111 0000 | |||
>> | 右移运算符”>>”是双目运算符。右移n位就是除以2的n次方。 其功能是把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数。 | A >> 2 结果为 15 ,二进制为 0000 1111 |
- 实例
:::info 应用——涉及到一些算法
:::
状态位的标识:::info go语言在位运算符的特点——&^按位清零运算符
:::
什么是按位置0?——右边的1和0像个闸门- 只要右边为1,不管左边是什么数,结果都是0
- 右边如果为0,结果 = 左边
赋值运算符
三类:
其他运算符
运算符优先级
二元运算符的运算方向均是从左至右,把我不准就用括号:::info c语言中
:::
最高级 | 一元运算符的优先级非常高,仅次于括号,比如 负号(-)、非运算符(!)、自增自减运算符 |
最低 | 逗号运算符优先级最低 |
中不溜 | 口诀:算数运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符(一算,二比,三与或,四 等) 1. 关系运算符也有两等优先级,先比大小,再比相等 2. 例子(a=5,b=3) ‘a’的ASCII码是97,‘b’的ASCII码是98,‘c’的ASCII码是99 |
取整
- 向上取整
<font style="color:rgb(61, 70, 77);">math.Ceil(...)</font>
要求输入浮点数 - 向下取整
<font style="color:rgb(61, 70, 77);">math.Floor(...)</font>
要求输入浮点数