gpt4 book ai didi

java - java中的移位操作实现

转载 作者:行者123 更新时间:2023-11-30 06:31:21 26 4
gpt4 key购买 nike

我最近在 Java 中使用了移位运算符并注意到 >>运算符与 >> 的含义不同在 C 中。在 Java 中 >>是使第一位保持相同值的有符号移位。在 Java 中,相当于 C shift 的是 >>>运算符(operator)。左移运算符 ( << ) 与 C 中的相同,只是移位而忽略第一位。

我想知道的是

  • 为什么要进行此更改?
  • 为什么符号不一致,所以 >> 和 << 是带符号的移位而 >>> 和 <<< 是无符号的?
  • 签名的轮类运算符(operator)有什么用吗?

最佳答案

永远不需要符号感知左移,因为 2:s 补码表示将符号存储在最高有效位。

以某种“符号感知”方式向左移动一位的值之间没有区别,您无能为力。将位向左移动,在最低有效位插入一个 0,就完成了。

对于带符号的数字,向右移动不是那么明确,这就是为什么有两个运算符。

关于java - java中的移位操作实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com