当前位置:网站首页>位算符详解 按位与、或、异或、取反、左移、右移
位算符详解 按位与、或、异或、取反、左移、右移
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、算术右移:丢弃最低位,向右移位,左边空出来的位置补原来的符号位(即补最高位)
边栏推荐
猜你喜欢

NPDP|传统行业产品经理如何进行能力提升?

多线程与高并发(五)—— 源码解析 ReentrantLock

测试接口出现“data“: “Full authentication is required to access this resource“凭证已过期

Making Pre-trained Language Models Better Few-Shot Learners

【FAQ】【Push Kit】 华为怎么设置角标

Mysql索引、事务与存储引擎

set和map使用讲解

老板加薪!看我做的WPF Loading!!!

运维如何学习、自我提升价值?

2022-08-09 学习笔记 day32-IO流
随机推荐
钻石价格预测的ML全流程!从模型构建调优道部署应用!
Interface test advanced interface script using -apipost (pre/post execution script)
让mixin为项目开发助力【及递归优化新尝试】
php7中使用“??”运算符
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(下)
期货开户手续费加1分已经是常态
MongoDB教程
一颗完整意义的LPWAN SOC无线通信芯片——ASR6601
FFmpeg extract H264 nalu from the mp4
Consul简介和安装
Kong自定义插件初体验
Scala中使用 Jackson API 进行JSON序列化和反序列化
报告详解影响英特尔10/11/12代酷睿处理器的ÆPIC Leak安全漏洞
「POJ 3666」Making the Grade 题解(两种做法)
容器化 | 在 S3 实现定时备份
「企业架构」什么是Zachman框架?
D-Wave成功上市!量子计算商业化正在加速
欧洲核子研究中心首次在量子机器学习研究中取得实效
JSON serialization and deserialization using Jackson API in Scala
postgis空间数据导入及可视化