【Java】位运算符---算术右移和逻辑右移、算术左移和逻辑左移
文章目录
- 1. 算术左移和逻辑左移
- 2. 算术右移和逻辑右移
- 3. Java中<<、>>和>>>的含义
1. 算术左移和逻辑左移
对于有符号数或无符号数:算术左移 == 逻辑左移。
操作逻辑:丢弃高位,低位补0。
数值变化:左移n位,相当于乘以2的n次方。(对于无符号数、有符号数的正数或负数,均成立)。
2. 算术右移和逻辑右移
分类 | 算术右移 | 逻辑右移 | 注 |
---|---|---|---|
无符号数 | 丢弃低位,高位补0 | 丢弃低位,高位补0 | 对于无符号数,算术右移 == 逻辑右移 |
有符号数 |
丢弃低位,高位补符号位 (正数为0,负数为1) |
丢弃低位,高位补0 | 对于有符号数,算术右移 != 逻辑右移 |
【注】对于无符号数、有符号数的正数:算术右移 == 逻辑右移。
数值变化:右移n位,相当于除以2的n次方。适用于:
- 无符号数的右移。
- 有符号数的算术右移、正数的逻辑右移。
【注】只有一种情况不适用,就是负数的逻辑右移。
3. Java中<<、>>和>>>的含义
<<
:算术左移。>>
:算术右移。>>>
:逻辑右移。
【注】没有<<<
符号。
程序示例:
public class BitOperator{public static void main(String[] args){System.out.println(2<<1);//算术左移,输出4System.out.println(-2<<1);//算术左移,输出-4System.out.println(2>>1);//算术右移,输出1System.out.println(-2>>1);//算术右移,输出-1System.out.println(2>>>1);//逻辑右移,输出1System.out.println(-2>>>1);//逻辑右移,输出2147483647}
}
运行结果:
【Java】位运算符---算术右移和逻辑右移、算术左移和逻辑左移相关推荐
- java位运算符取反_java运算符
Java 语言支持如下运算符: 算术运算符: +,-,*,/,%,++,-- 赋值运算符 = 关系运算符: >,<,>=,<=,==,!=, instanceof 逻辑运算符: ...
- java位运算符和位运算表达式
java位运算符和位运算表达式 > 右移 x>>a X各比特位右移a位 << 左移 X< >> 不带符号的右移 x>>>a X各比特位 ...
- Java 位运算符详解
文章目录 Java 位运算符详解 前情提要: 一.简介 二.如何区分 &,|,^ 是逻辑运算符还是位运算符? 三.例子 按位与 & 按位或 | 按位异或 ^ 按位取反 ~ 左移 < ...
- java位运算符详解
java位运算符详讲 一.位运算符分类 java中位运算符主要有:按位与&.按位或|.按位非~.按位异或^. 在使用时,需要将运算数都转换为二进制再进行运算,若为负数则使用补码表示. ...
- java 位运算符赋值_java-运算符(算术、赋值 =、关系、逻辑、三元、位运算符)...
基本运算符与位运算符 算术运算符:两个操作数进行计算 + 加 - 减 * 乘 / 除(取整) % 取余 例子: class ArrayTest{ public static void main(Str ...
- java 位运算符在实际开发中的用处_java 位运算 和实际应用
public class Test { public static void main(String[] args) { // 1.左移( < // 0000 0000 0000 0000 00 ...
- Java位运算符详解(移位、位与、或|、非~、异或^)
位运算符 位运算是对操作数以二进制为单位进行的操作和运算,运算结果为整数.位运算符包括:"&"."|"."~"."^&qu ...
- Java位运算符以及运算优先级
1. Java中的位运算符 (1) 与&: 对运算符两侧以二进制表达的操作符按位分别进行'与'运算. 操作的规则是:仅当两个操作数都为1时.输出结果才为1.否则为0 例:12 & 5 ...
- java位运算符取反_Java运算符之位运算符
位运算符 尹成课程资料及演示(免费)(文末有资料链接) 位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的.接下来通过一张表来展示Java中的位运算符及其用法,如表1所示. ...
- Java 位运算符和移位运算符
参考: Bitwise and Bit Shift Operators <Java 编程思想 第3章 操作符> 今天学习 Java BitSet 类时,发现对于位运算符和移位运算符的操作有 ...
最新文章
- 从 no-code 到 low-code 再到 pro-code
- cocos2d-x-3.1 win32程序-初识源代码(coco2d-x 学习笔记二)
- JavaScript实现十种经典排序算法(js排序算法)
- 面试题整理13 合并排序链表去重
- 《Linux内核设计与实现》读书笔记(十四)- 块I/O层
- python 效率_Python 运行效率为何低
- 今日arXiv精选 | 15篇ICCV 2021最新论文
- 前端封装接口弹出错误_项目实践:SpringBoot三招组合拳,手把手教你打出优雅的后端接口...
- 数字化转型鸿沟如何消除?ROMA Connect融合集成,联接企业应用现在与未来
- Javascript基础--对象
- 算法笔记(23)网格搜索及Python代码实现
- OEM产品验收测试用例如何编写
- Python常用第三方库
- Cisco Packet Tracer思科模拟器交换机的VTP技术
- 从一个运维人员的角度看微盟的这次删库跑路的节奏
- python编写sql注入工具毕业设计_Python编写SQL注入工具(2)
- 计算机进制小数位之间的转换,计算机进制之间相互转换
- AI行业态势感知(第七期)
- CHAPTER 18 Semantic Role Labeling
- python计算圆周率100万位要多久_Super Pi-计算10000位圆周率需要多少时间?
热门文章
- Excel问题:excel表格的状态栏,不显示求和怎么办?
- 【前端领域】3D旋转超美相册(HTML+CSS)
- MyBatis-Plus插件
- C#和JQ判断移动端还是PC端
- 基于stm32的智能婴儿床(毕业设计)
- 解决echarts饼图label显示不全的问题
- CF506 C Mr. Kitayuta vs. Bamboos (贪心)
- Elasticsearch:《大数据集群学习笔记与实战》之es集群(2)es基本操作
- python画卡通人物_追忆童年,教你用Python画出儿时卡通人物
- 深入理解Nginx:java业务逻辑层都用什么技术