通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

Java 中算术右移和逻辑右移有哪些区别

Java 中算术右移和逻辑右移的区别是:1、运算方式不同;2、结果不同;3、用途不同;4、运算符不同。算术右移保留符号位,并将其他位向右移动;逻辑右移则不保留符号位,并将其他位向右移动,左边补0。

一、Java 中算术右移和逻辑右移的区别

1、运算方式不同

算术右移保留符号位,并将其他位向右移动;逻辑右移则不保留符号位,并将其他位向右移动,左边补0。

2、结果不同

算术右移的结果可能是负数,逻辑右移的结果始终是正数。

3、用途不同

算术右移通常用于除以2的幂的整数运算,逻辑右移通常用于位运算。

4、运算符不同

算术右移使用>>运算符,逻辑右移使用>>>运算符。

延伸阅读:

二、什么是算术右移

算术右移是指将位向右移动指定位数,然后在左边填充0。SAR (arithtical right shift)是将位向右移动指定的位数,然后在左边填充原始的符号位。

例如,在汇编语言中,对于算术右移,如果较高位为1,则填写1;否则,填写0。例如,如果10000000算术右移7位,它应该成为11111111,而如果逻辑右移7位,它将成为00000001,不考虑符号位。这就是算术右移和逻辑右移的区别。

在程序集中,可以使用算术右移来除带符号的数据。将一个数字右移N位相当于将这个数字除以2的N次方。

以上就是关于Java 中算术右移和逻辑右移的区别的内容了,希望对大家有帮助。

相关文章