2

我与在 Java中提供算术移位<<的运算符混淆了>>

例如我有这个二进制数:

   0000 0101 // It is actually 5 in dec system

现在我想将这个数字向左移动 2 个位置。我正在这样做(这只是移位的概念):

 0000 0101 << 2

现在我不知道:如果我需要将高位移动 2 个位置并在右侧填充零,或者我需要将整数 ( 101) 移动 2 个位置

4

1 回答 1

4

第二种选择:)
例如,0110001 << 2 = 1000100

其他运营商是:

  • 有符号右移 ( >>)

    0011001 >> 2 = 0000110
    1011001 >> 2 = 1110110

    最左边的位用作左填充。这样做是为了传播符号位(最高位)。

  • 无符号右移 ( >>>)

    1110001 >> 2 = 0011100

    由于该数字被认为是无符号的,因此没有什么可以传播的,只需用零填充!

于 2013-10-29T19:17:59.250 回答