GO运算符

Go 语言内置的运算符有:
  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符

算术运算符

假定 A 值为 10,B 值为 20

GO运算符 - 图1

注意:

  1. 没有++a,只有a++
  2. ^在go语言里不表示次方运算,表示位运算“异或”,想要次方运算,可以调用math.Pow(x, y),表示xy

比较运算符

GO运算符 - 图2

和其他主流语言没差别,但具体能不能比,小部分分析一下数组:

在c语言中,数组arr,arr会转换成指针,是引用类型,但在golang中,不是的,就是值类型,可以进行比较

  1. 1. 但是要求是相同维数,相同元素个数,才可以进行比较,否则编译错误
  2. 2. 每个元素都相同才相等

逻辑运算符

下表列出了所有Go语言的逻辑运算符。假定 A 值为 True,B 值为 False。

GO运算符 - 图3

没什么差别

?位运算符

不会使用
位运算符对整数在内存中的二进制位进行操作。()
  1. 按序依次对二进制数进行操作
    GO运算符 - 图4
    实例:假定 A = 60; B = 13; 其二进制数转换为:
    GO运算符 - 图5
  2. 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
  1. 实例
    GO运算符 - 图6

:::info 应用——涉及到一些算法

:::

状态位的标识

GO运算符 - 图7

:::info go语言在位运算符的特点——&^按位清零运算符

:::

GO运算符 - 图8

什么是按位置0?——右边的1和0像个闸门
  • 只要右边为1,不管左边是什么数,结果都是0
  • 右边如果为0,结果 = 左边

赋值运算符

三类:

GO运算符 - 图9

其他运算符

GO运算符 - 图10

运算符优先级

二元运算符的运算方向均是从左至右,把我不准就用括号

GO运算符 - 图11

:::info c语言中

:::

最高级 一元运算符的优先级非常高,仅次于括号,比如 负号(-)、非运算符(!)、自增自减运算符
最低 逗号运算符优先级最低
中不溜 口诀:算数运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符(一算,二比,三与或,四 等
1. 关系运算符也有两等优先级,先比大小,再比相等
2. 例子(a=5,b=3) ‘a’的ASCII码是97,‘b’的ASCII码是98,‘c’的ASCII码是99 GO运算符 - 图12

取整

  1. 向上取整<font style="color:rgb(61, 70, 77);">math.Ceil(...)</font>要求输入浮点数
  2. 向下取整<font style="color:rgb(61, 70, 77);">math.Floor(...)</font>要求输入浮点数