当前位置: 首页 > news >正文

golang中的位运算 << >> ^ 高位数,低位数示例

在golang的开发中,特别是涉及算法的开发中经常就会用到位运算, 今天介绍 以下几个位运算左右移位运算和高位数低位数的关系。

规则

右移运算符  >> :低位溢出,符号位不变,并用符号位补溢出的高位

左移运算符  <<:  符号位不变,低位补0

按位异或 ^  两位一个为0,一个为1,结果为1,否则为0  

示例

定义了sum为32位数,

获取sum的高16位数  方法为 32位的sum右移16位 然后转换为uint16, 即获取sum的16位高位数

获取sum的低16位数  直接将32位的数sum转换为uint16, 高位会被丢弃,即获得了 sum 的低16位数

package bit_testimport "fmt"func ExampleDemo() {// uint32 Range: 0 through 4294967295.// uint16 Range: 0 through 65535var sum uint32 = 65635high16 := uint16(sum >> 16) // 32位的sum右移16位 然后转换为uint16, 即获取sum的16位高位数low16 := uint16(sum)        // 直接将32位的数转换为16位数, 高位会被丢弃,即获得了 sum 的低16位数fmt.Printf("high16: %v, low16: %v sum>>16结果为:%v \n", high16, low16, sum >> 16)// 单个正数 按位异或  ^100 结果为加1后的负数 即 -101//output: high16: 1, low16: 99 sum>>16结果为:1
}

运行示例, 

 单个正数 按位异或 结果为加1后的负数  如:^65635  结果为 -65635

相关文章:

  • 有趣的css - 两个圆形加载效果
  • MVS net笔记和理解
  • JAVA面试题大全(九)
  • Web(数字媒体)期末作业
  • Centos 7 上安装【Docker】
  • RPC原理技术
  • docker ps显示的参数具体是什么意思
  • java集合类详解
  • 【大数据篇】Hadoop:大数据处理的核心基石
  • 发现未来声音,靠谱的AI配音平台
  • 【云原生】K8s管理工具--Kubectl详解(一)
  • 什么是住宅IP代理?为什么需要家庭 IP 代理
  • xcode按下delete键不能删除不能使用,解决办法
  • uniappx 获取设备唯一标识(OAID、AAID、AndroidID、IMEI等) Ba-IdCode-U
  • 二叉数之插入操作
  • 【刷算法】求1+2+3+...+n
  • css选择器
  • Docker 笔记(2):Dockerfile
  • flask接收请求并推入栈
  • golang 发送GET和POST示例
  • HTTP--网络协议分层,http历史(二)
  • js中的正则表达式入门
  • mac修复ab及siege安装
  • Web Storage相关
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 驱动程序原理
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 数据仓库的几种建模方法
  • 思否第一天
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 《码出高效》学习笔记与书中错误记录
  • HanLP分词命名实体提取详解
  • 我们雇佣了一只大猴子...
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (13)Hive调优——动态分区导致的小文件问题
  • (pojstep1.3.1)1017(构造法模拟)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (搬运以学习)flask 上下文的实现
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (一)appium-desktop定位元素原理
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)3D模板阴影原理
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ******之网络***——物理***
  • .net core 的缓存方案
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET Micro Framework初体验
  • .NET Reactor简单使用教程
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 跨平台图形库 SkiaSharp 基础应用