运算符用于在程序运行时执行数学或逻辑运算。
Go语言内置的运算符有:
算术运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
其他运算符
算术运算符
算术运算符主要有:+、-、*、/、%(求余)、++(自增)、--(自减)
关系运算符
关系运算符主要有:==、!=、>、=、
逻辑运算符
逻辑运算符主要有:&&(逻辑AND)、|| (逻辑OR)、! (逻辑NOT)
位运算符
位运算符对整数在内存中的二进制进行操作。
位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能。如果要开发高效率程序,位运算符是必不可少的。位运算符用来对二进制进行操作,包括:按位与(&)、按位或(|)、按位异或(^)、按位左移(>)
按位与
按位与(&):对两个数进行操作,然后返回一个新的数,这个数的每个位都需要两个输入数的同一位都为1时 才为1。简单的说:同一位同时为1 则为1
按位或
按位或(|):比较两个数,然后返回一个新的数,这个数的每一位置设置1的条件是任意一个数的同一位为1 则为1。简单的说:同一位其中一个为1 则为1
按位异或
按位异或(^):比较两个数,然后返回一个数,这个数的每一位设为1的条件是两个输入数的同一位不同 则为1,如果相同就设为 0 。简单的说:同一位不相同 则为1
左移运算符(
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零
语法格式:
需要移位的数字
例如:3
计算过程:
3
首先把 3 转换为 二进制数字 0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出。其他的数字都朝左平移4位,最后在 低位(右侧)的两个空位补零,则得到的最终结果为 0000 0000 0000 0000 0000 0000 0011 0000,则转换为十进制为 48
用 3 * 2 ^4 计算 更加方便,3 乘以 2 的4次方
数字意义
在数字没有溢出的前提下,对于正数 和 负数,左移一位 都相当于 乘以 2的一次方,左移 n 位就相当于 乘以2的 n 次方
右移运算符(>>)
按二进制形式把所有的数字都向右移动对应 位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数 补1
语法格式
需要移位的数字 >> 移位的次数
例如:11 >> 2,则是将数字 11 右移2位
计算过程
11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所有在高位补零,则得到的最终结果为 0000 0000 0000 0000 0000 0000 0000 0010,转化为十进制为2
用 11 / (2 ^ 2) 计算 更加方便,11 除以 2 的2次方
数字意义
右移一位相当于 除2,右移 n 位,则相当于 除以2的 n 次方
赋值运算符
赋值运算符有:=、+=、-=、*=、/=、%=、>=、&=、^=、|=。
DEMO示例
以下是上面知识点的代码演示:
运行结果为:
领取专属 10元无门槛券
私享最新 技术干货