代码之家  ›  专栏  ›  技术社区  ›  Dimpermanence

java按位左移[重复]

  •  -3
  • Dimpermanence  · 技术社区  · 10 年前

    我理解所有的按位操作(特别是在Java中),除了按位左移。我梳理了“书堆”,在不同的页面上读了很多“解释”,但我仍然不满意。要么这是一个极其复杂的概念,要么它没有被很好地理解和模糊。但是,我知道这在一定程度上是相关的,因为我(今天)看到了Java算法确实使用了左移位运算符“<<”。所以,如果有人能用通俗易懂的英语来解释这一点,那就太好了!

    1 回复  |  直到 10 年前
        1
  •  0
  •   Henry    10 年前

    左移一位将值中的所有位向左移动一位位置。在右侧获得自由的位置被位0填充,最左边的位丢失。

    这与将值乘以2的效果相同。

    示例(为简单起见,仅使用8位):

    original value     10010011
    after shift left   00100110
    

    如果向左移位n位,只需重复n次(前提是n小于字长)。对于大于字长的n,移位n%wordLength。