Golang的运算符-位运算符
Golang的运算符-位运算符
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.位运算符概述
常见的位逻辑运算符:
&:
位与运算符,表示AND(表示所有条件都得匹配),运算规则为相同位都是1时结果才为1,不同则为0。举个例子:如"5 & 7",结果为5。
计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,7转换成二进制为0000 ,此时做位与运算,相同位都是1时结果才为1,最终得到结果二进制结果0000 ,使用十进制表示为5。 |:
位或运算符,表示OR(表示有一个条件匹配即可),运算规则为相同位只要一个为1则为1。举个例子:如"5 | 7",结果为7。
计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,7转换成二进制为0000 ,此时做位或运算,相同位只要一个为1时结果才为1,最终得到结果0000 。使用十进制表示为7。 ^:
位异或运算符,表示XOR,运算规则为相同位不同则为1,相同则为0。举个例子:如"5 ^ 7",结果为2。
计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,7转换成二进制为0000 ,此时做位异或运算,相同位不同则为1,相同则为0,最终得到结果0000 。使用十进制表示为2。
&^:
位清空运算符,表示AND NOT,运算规则为后数为0,则用前数对应位代替,后数为1则取0。举个例子:如"5 ^ 7",结果为0。
计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,7转换成二进制为0000 ,此时做位清空运算符,为后数为0,则用前数对应位代替,后数为1则取0,最终得到结果0000 0000。使用十进制表示为0。
常见的位移运算符:
<<:
左移,表示将对应的二进制数字向左移动相应的位数,比如 << ,结果为40。
计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,将二进制数字向左位移3位得到0010 ,使用十进制表示为""。
>>:
右移,表示将对应的二进制数字向右移动相应的位数,比如 >> ,结果为1。
计算过程为:我们用一个字节来表示一个数字,5转换成二进制为0000 ,将二进制数字向左位移3位得到0000 ,使用十进制表示为""。
二.位运算符实战案例
1>.位逻辑运算符案例
package main import (
"fmt"
) func main() { a := //对应二进制为: 0000 0101
b := //对应二进制为: 0000 0111 fmt.Printf("变量a对应的二进制值是:[%b]\n", a)
fmt.Printf("变量b对应的二进制值是:[%b]\n", b) /*
&:
位与运算符,表示AND(表示所有条件都得匹配),运算规则为相同位都是1时结果才为1,不同则为0。举个例子:如"5 & 7",结果为5。 |:
位或运算符,表示OR(表示有一个条件匹配即可),运算规则为相同位只要一个为1则为1。举个例子:如"5 | 7",结果为7。 ^:
位异或运算符,表示XOR,运算规则为相同位不同则为1,相同则为0。举个例子:如"5 ^ 7",结果为2。 &^:
位清空运算符,表示AND NOT,运算规则为后数为0,则用前数对应位代替,后数为1则取0。举个例子:如"5 ^ 7",结果为0。
*/
fmt.Printf("a & b = [%d]\n", (a & b))
fmt.Printf("a | b = [%d]\n", (a | b))
fmt.Printf("a ^ b = [%d]\n", (a ^ b))
fmt.Printf("a &^ b = [%d]\n", (a &^ b)) }

2>.位移运算符
package main import (
"fmt"
) func main() { a := //对应二进制为: 0000 0101 fmt.Printf("变量a对应的二进制值是:[%b]\n", a) /*
<<:
左移,表示将对应的二进制数字向左移动相应的位数,比如 5 << 3,结果为40。 >>:
右移,表示将对应的二进制数字向右移动相应的位数,比如 5 >> 3,结果为1。
*/ fmt.Printf("5 << 3 = [%d]\n", <<)
fmt.Printf("5 >> 3 = [%d]\n", >>) }

Golang的运算符-位运算符的更多相关文章
- PHP中的运算符---位运算符、递增递减运算符、三元运算符、字符串运算符、数组运算符、类型运算符、错误控制运算符
1.位运算符 位运算符用来对整型数的指定位进行置位,如果被操作数是字符串,则对该字符串的ASCII码值进行操作. 运算类型 运算符 举例 结果 按位与 & $a & $b 将$a 与 ...
- javascript运算符——位运算符
× 目录 [1]二进制 [2]非 [3]与[4]或[5]异或[6]左移[7]右移[8]>>>[9]应用 前面的话 位运算符是非常底层的运算,由于其很不直观,所以并不常用.但是,其速度 ...
- java入门---运算符&算术运算符&自增自减运算符&关系运算符&位运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 ...
- 【Python】2.16学习笔记 运算符,位运算符,if-else语句
复合运算符 a *= b # a = a * b a += b # a = a + b a -= b # a = a - b ... 位运算符 对数字进行二进制运算 按位与 &,二进制位都为一 ...
- 【java从入门到精通】day-07-逻辑运算符-位运算符-条件运算符-扩展赋值运算符
逻辑与(&&).或(||).非(!) 示例: package operator;public class Demo05 { public static void main(St ...
- 位运算符 & | ~ ^ << >>
# ### 位运算符 & | ~ ^ << >> var1 = 19 var2 = 15 # & 按位与 """ res = va ...
- PHP 位运算符
位运算符 位运算符是指对二进制位从低位到高位对齐后进行运算. 符号 作用 举例 个人理解 & 按位与 $m & $n 全1为1,否则为0 | 按位或 $m | $n 全0为0,有1为1 ...
- 换个语言学一下 Golang (5)——运算符
运算符用于在程序运行时执行数学或逻辑运算. Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 接下来让我们来详细看看各个运算符的介绍. 算术运算符 下表 ...
- C语言的各种位运算符的操作简述
运算符: 算术运算符: + , - , * , / , % , ++ , -- 符合运算符: += , *= , /= , %= 条件运算符: ? : 关系运算符: == , >= , < ...
随机推荐
- MySQL的默认隔离级别的实现依赖于MVCC和锁,准确点说就是一致性读和锁。
MySQL的默认隔离级别的实现依赖于MVCC和锁,准确点说就是一致性读和锁.
- redis 之redis-sentinel主从复制高可用
一.redis主从复制背景问题 Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用: (1)一旦主节点宕机,从节点作为主节点的备份可以随时顶上来. (2)扩展主节点的读能力,分担主节点 ...
- System.Diagnostics.Conditional 的妙用 -- 把文档放在代码中
最近的工作跟 UI 打交道比较多, 各种坑. 今天从 Prefab 的序列化功能来说说 System.Diagnostics.Conditional 的妙用. 我们做 UI 面对各种按钮, 组件的获取 ...
- 本周总结(19年暑假)—— Part5
日期:2019.8.11 博客期:111 星期日
- 用python发送qq邮件
一.需要开启smtp服务,获取授权密码. 在qq邮箱的设置里开启smtp 二.代码 # -*- coding:utf-8 -*- import smtplib from email.mime.text ...
- ES6之新的数据结构
Set Set 类似于数组,是一种集合的数据结构,和 Array 之间最大的区别是: Set中所有的成员都是唯一的. 可以把Set想象成是一个: 既没有重复元素,也没有顺序概念的数组. Set 本身是 ...
- keep-alive 用法 及activated,deactivated这两个生命周期函数
keep-aliveProps: include - 字符串或正则表达式.只有名称匹配的组件会被缓存.exclude - 字符串或正则表达式.任何名称匹配的组件都不会被缓存.max - 数字.最多可以 ...
- 从数据库中查询所有表及所有字段的SQL语句
从数据库中查询所有表及所有字段的SQL语句 由于一个小项目的需要,近日完成一个从数据库中查询所有表及所有字段的方法,其实用两条SQL语句就可以完成. Sql Server版:列出当前DB中所有表:se ...
- 解题报告:luogu P5536 【XR-3】核心城市
题目链接:P5536 [XR-3]核心城市 这题是某次月赛题. 这题我完全是看标签猜的. 优先选择直径中点即可,这里重要的是互通,很容易想到用堆维护可选的,预处理直径和距叶节点距离即可(最近),实质上 ...
- COGS 2294. [HZOI 2015] 释迦
额,其实就是裸的三模数NTT,上一篇已经说过了 哦,还有一个就是对乘起来炸long long的数取模,用long double之类的搞一下就好,精度什么的,,(看出题人心情??) #include&l ...