全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java<<、>>、>>>移位操作方法

<<,有符号左移位,将运算数的二进制整体左移指定位数,低位用0补齐。

int leftShift = 10;
System.out.println("十进制:" + leftShift + ", 二进制:" + Integer.toBinaryString(leftShift));
int newLeftShift = letfShift << 2;
System.out.println("左移2位后十进制:" + newLeftShift + ", 左移2位后二进制" + Integer.toBinaryString(newLeftShift)); //正整数x左移n位后的十进制结果,x = x * 2^n

以上是正整数,运算结果如下。

接下来看看将负数进行左移2位操作是什么情况,运算结果如下。

为什么会-10的二进制会出现这么多的1呢?仔细数一下刚好有32位。首先需要了解的是Java负数存储是以补码形式存储的(补码=反码+1),10的二进制是1010,它的反码就是0101,再加1就是补码0110。那为什么会多出来那么多1呢?这是因为int型在Java中占8个字节,刚好32位,10原码的高位全是0,它的反码自然高位就变成了1。所以整体左移2位,低位以0补齐,最后的运算结果就是x = (|x| + 2^n)。

>>,有符号右移位,将运算数的二进制整体右移指定位数,整数高位用0补齐,负数高位用1补齐(保持负数符号不变)。

int rightShift = 10;
System.out.println("十进制:" + rightShift + ", 二进制:" + Integer.toBinaryString(rightShift));
int newRightShift = rightShift >> 2;
System.out.println("右移2位后十进制:" + newRightShift + ", 右移2位后二进制" + Integer.toBinaryString(newRightShift));  //右移n位后的运算数x十进制结果,x = x / 2

以上是正整数,运算结果如下。

接下来看看将负数进行右移2位操作是什么情况,运算结果如下。

负数的有符号右移基本原理还是和左移相同,不同的是结果的计算,因为这是有符号的右移,一直右移最后的结果就会是-1。归纳起来就是,如果运算数是偶数,那么它的运算结果就是 x = -(|x| / 2),如果运算数是奇数,那么它的运算结果就是 x = -(|x| / 2) - 1。

>>>,无符号右移位,不管正数还是负数,高位都用0补齐(忽略符号位)

先看正数,正数的>>>无符号右移位和>>有符号右移位计算结果相同

int rightShift = 10;
System.out.println("十进制:" + rightShift + ", 二进制:" + Integer.toBinaryString(rightShift));
int newRightShift = rightShift >>> 2;
System.out.println("右移2位后十进制:" + newRightShift + ", 右移2位后二进制" + Integer.toBinaryString(newRightShift));  //右移n位后的云算数x十进制结果,x = x / 2

以上是正整数,运算结果如下。

接下来看负整数,运算结果如下。

虽然无符号移位后的二进制和有符号移位后的二进制看起来相同的,但结果大相径庭,记住有符号右移位操作,实际上是忽略符号的算术操作,即高位统一补0。

以上这篇java<<、>>、>>>移位操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java  # 移位  # Java移位运算符详解实例(小结)  # 浅析java移位符的具体使用  # Java利用移位运算将int型分解成四个byte型的方法  # java基于移位操作实现二进制处理的方法示例  # java中关于移位运算符的demo与总结(推荐)  # Java中的位运算符、移位运算详细介绍  # java中的移位运算符心得总结  # Java中位运算(移位、位与、或、异或、非) 的简单实例  # Java三种移位运算符原理解析  # 补齐  # 的是  # 正整数  # 给大家  # 来看看  # 这是  # 就会  # 那么多  # 这么多  # 希望能  # 大相径庭  # 这篇  # 都用  # 这是因为  # 再加  # 多出  # 小编  # 先看  # 大家多多  # 基本原理 


相关文章: 云南网站制作公司有哪些,云南最好的招聘网站是哪个?  如何选择适配移动端的WAP自助建站平台?  如何通过西部建站助手安装IIS服务器?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  购物网站制作公司有哪些,哪个购物网站比较好?  香港服务器租用每月最低只需15元?  孙琪峥织梦建站教程如何优化数据库安全?  如何用美橙互联一键搭建多站合一网站?  如何用免费手机建站系统零基础打造专业网站?  如何选择高效可靠的多用户建站源码资源?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  定制建站价位费用解析与套餐推荐全攻略  如何生成腾讯云建站专用兑换码?  制作表格网站有哪些,线上表格怎么弄?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  用v-html解决Vue.js渲染中html标签不被解析的问题  网站设计制作企业有哪些,抖音官网主页怎么设置?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  如何快速搭建自助建站会员专属系统?  Python多线程使用规范_线程安全解析【教程】  在线制作视频的网站有哪些,电脑如何制作视频短片?  php json中文编码为null的解决办法  电商网站制作公司有哪些,1688网是什么意思?  网站制作公司排行榜,抖音怎样做个人官方网站  建站之星图片链接生成指南:自助建站与智能设计教程  ,南京靠谱的征婚网站?  ,购物网站怎么盈利呢?  家庭建站与云服务器建站,如何选择更优?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  广东企业建站网站优化与SEO营销核心策略指南  浅谈Javascript中的Label语句  专业公司网站制作公司,用什么语言做企业网站比较好?  C#怎么使用委托和事件 C# delegate与event编程方法  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  宝塔建站后网页无法访问如何解决?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  微信推文制作网站有哪些,怎么做微信推文,急?  学校免费自助建站系统:智能生成+拖拽设计+多端适配    香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  阿里云网站制作公司,阿里云快速搭建网站好用吗? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。