<

java" id="highlighter_505373">

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

接下来看看将负数进行左移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补齐(保持负数符号不变)。

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

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

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

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

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

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

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

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

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

java右移位_java 、移位操作方法相关推荐

  1. java右移位_java、、移位操作方法

    < int leftShift = 10; System.out.println("十进制:" + leftShift + ", 二进制:" + Inte ...

  2. java右移位_java移位运算符详解

    java 移位运算符不外乎就这三种: << (左移). >> (带符 号右移)和 >>> (无符号右移) 1 . 左移运算符 左移运算符 << 使 ...

  3. java右移位_java中的移位运算符:,,总结

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  4. java右移位_java中的左移 右移

    1. 左移运算符 左移运算符< 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规则只记住一点:丢弃最高位,0补最低位 如果 ...

  5. java set 包含_Java Set.contains()方法:判断Set集合是否包含指定的对象

    Java 集合类中的 Set.contains() 方法判断 Set 集合是否包含指定的对象.该方法返回值为 boolean 类型,如果 Set 集合包含指定的对象,则返回 true,否则返回 fal ...

  6. java 发送邮件 菜鸟_Java发送邮件的方法

    1.需要的jar包 2.具体实现方法 1.设置邮箱主机.需要认证.邮箱协议 Properties pro=new Properties(); pro.setProperty("mail.ho ...

  7. java secretkey用法_Java SecretKeyFactory.generateSecret方法代码示例

    本文整理汇总了Java中javax.crypto.SecretKeyFactory.generateSecret方法的典型用法代码示例.如果您正苦于以下问题:Java SecretKeyFactory ...

  8. java 虚函数_Java的虚方法

    虚方法出现在Java的多态特性中, 父类与子类之间的多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding).在Java中,子类 ...

  9. java post 发送_Java发送post方法详解

    总结一下java使用http发送post的方法: 1.post请求用于发送json 格式的参数: /** * post请求(用于请求json格式的参数) * * @param url 地址 * @pa ...

最新文章

  1. Go语言中的Struct
  2. raptor五个数排序流程图_数据结构与算法(一):排序(上)
  3. cacti0.8.8安装文档
  4. 【PAT乙级】1047 编程团体赛 (20 分)
  5. 点到直线的投影公式_2021高考复习资料:高中数学必备公式与知识点汇总
  6. Hello Blazor:(11)全局截获事件执行
  7. python方差分析模型的预测结果怎么看_statsmodels中方差分析表结果解析
  8. 树状数组 + 离散化 求逆序对数量
  9. Hive 之 用户自定义函数 UDF UDAF UDTF
  10. 亲身经历:如何判断一个字符在a/z之前?
  11. matlab18a安装步骤,MATLAB R2018a图文安装教程
  12. 美国密歇根州立大学计算机专业,密歇根州立大学计算机科学硕士排名第66(2020年TFE Times排名)...
  13. Golang 1.16 新特性-embed 包及其使用
  14. 安装oh my zsh后出现的目录权限问题
  15. 产品线架构设计的基本步骤
  16. python课程设计矩阵对角线之和_Python二维数组实现求出3*3矩阵对角线元素的和示例...
  17. BRAC模型 权限表设计
  18. 永久解决word2016安装Mathtype后无法复制粘贴问题,且不影响Mathtype加载到Word(附mathtype7安装包)
  19. 听说C语言很难?怎么不来看看我这篇(六)结构
  20. 软件架构-zookeeper快速入门

热门文章

  1. 利用caffe的python接口实现DeepImageSynthesis实例
  2. 分段线性变换与直方图修正
  3. Android实现高仿QQ附近的人搜索展示
  4. CompletableFuture详解~thenCompose
  5. debconf-set-selections mysql_docker 静默安装mysql
  6. jpa原生query_Spring Data JPA原生SQL查询
  7. Markdown入门
  8. AI应用开发实战系列之三:手写识别应用入门
  9. python使用spark-sql读取数据并可视化_使用Spark SQL读取HBase上的数据
  10. 与时间相关的java源码_Java 基于当前时间获取和计算时间