首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go语言学习(7)-运算符

运算符用于在程序运行时执行数学或逻辑运算。

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示例

以下是上面知识点的代码演示:

运行结果为:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190105G0QARK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券