当前位置:网站首页>位算符详解 按位与、或、异或、取反、左移、右移
位算符详解 按位与、或、异或、取反、左移、右移
2022-08-10 18:12:00 【51CTO】
1.按位与(&)
int a = 3, b = -2 , c = a & b ;
2.按位或(|)
int a = 3, b = -2 ,
3.按位异或(^)
int a = 3, b = -2 , c = a ^ b ;
4.按位取反(~)
int a=18, b = ~ a;
5.左移(<<)
<< :左移 左边最高位丢弃,右边补齐0
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方
用来将一个数的各二进制位全部左移若干位,移动的位数由右操作数指定,右操作数必须是非负值,其右边空出的位用0填补,高位左移溢出则舍弃该高位。
左移表达式的的位 result = expression1 << expression2
参数 result,任何变量。
expression1,任何表达式,需要移位的数字。
expression2,任何表达式,移位的次数。
用来将一个数的各二进制位全部左移若干位。例如:
将a的二进制数左移2位,右补0。若a=15,即二进制数00001111,左移2位得00111100,即十进制数60(为简单起见,用8位二进制数表示十进制数15,如果用左移运算符16位二进制数表示,结果是一样的)。
高位左移后溢出,舍弃。
左移一位相当于该数乘以2,左移2位相当于该数乘以2^2=4。上面举的例子15<< 2=60,即乘了4。但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。
例如,假设以一个字节(8位)存一个整数,若a为无符号整型变量,则a=64,即二进制数01000000时,左移一位时溢出的de是0。而左移2位时,溢出的高位中包含1,则不符合上述结论。
由下表可以看出,若a的值为64,在左移一位后相当于乘2,左移2位后,值等于256。
简单介绍一种方便计算的方法:
8 << 1的值为8*2=16;
8 << 2的值为8*(2^2)=32;
8 << n的值为8*(2^n)。
数学意义:
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
6.右移(>>)
>> :右移 最高位是0,左边补齐0;最高为是1,左边补齐1
右移一位相当于除2,右移n位相当于除以2的n次方。
右移有两种:
1、逻辑右移:丢弃最低位,向右移位,左边空出来的位置补0
2、算术右移:丢弃最低位,向右移位,左边空出来的位置补原来的符号位(即补最高位)
边栏推荐
- Intelligent bid strategy how to affect advertising effectiveness?
- 接口测试进阶接口脚本使用—apipost(预/后执行脚本)
- HarmonyOS自动化测试框架—Hypium
- StoneDB 文档捉虫活动第一季
- 一小时搞定 简单VBA编程 Excel宏编程快速扫盲
- 入门:人脸专集2 | 人脸关键点检测汇总(文末有相关文章链接)
- 关于奉加微PHY62xx系列如何选型?PHY6222/PHY6212/PHY6252
- 【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(下)
- 微信小程序富文本标签rich-text
- JSON serialization and deserialization using Jackson API in Scala
猜你喜欢
CSV(Comma-Separate-Values)逗号分隔值文件
go语言的性能基准测试、性能优化测试和性能调优
五菱宏光MINI EV,唯一的缺点就是安全性
H3C_堆叠(IRF)及链路聚合在项目中的综合应用
HarmonyOS自动化测试框架—Hypium
【2015】【论文笔记】等离子光混合器THz辐射的光谱——
【FAQ】【Push Kit】推送服务,回执配置一直报错、回执过期修改、怎么删除配置的回执
【HMS core】【FAQ】AR Engine、Analytics Kit、Video Editor Kit、Image Kit、Map Kit典型问题合集2
Wuling Hongguang MINI EV, the only drawback is safety
开发模式对测试的影响
随机推荐
Go 语言快速入门指南:第四篇 与数据为舞之数组
Keil5退出仿真调试卡死的解决办法
迪文发布新款2K高清DGUS智能屏
企业即时通讯是什么?可以应用在哪些场景?
1720. 解码异或后的数组
兼具外观、性能、屏幕!华硕灵耀X 14火热抢购中
【测试】黑盒测试用例设计方法
电路板ROHS测试报告怎么办理?电路板ROHS检测流程
不能直接在交易所期货开户
20220810
测试接口出现“data“: “Full authentication is required to access this resource“凭证已过期
6-10 二分查找(20分)
VoLTE基础自学系列 | 3GPP规范解读之Rx接口(上集)
如何通过JMobile软件实现虹科物联网HMI/网关的报警功能?
欧洲核子研究中心首次在量子机器学习研究中取得实效
「企业架构」什么是Zachman框架?
Toronto Research Chemicals 双(乙酰丙酮)铂(II)
6-11 先序输出叶结点(15分)
【2015】【论文笔记】等离子光混合器THz辐射的光谱——
stm32中的CAN通讯列表模式配置解析与源码