按位 `index>>=1` 运算是否等于 `index/2` 并且忽略结果的余数?

问题描述 投票:0回答:1

所以,我看到了下面这行

index >>= 1
,我想知道这是什么意思。我做了一些研究,发现它是按位运算,但我必须在脑海中模拟一些场景,而用位是不可能的,因为我必须转换所有内容等等,所以我向 GPT 询问技巧我怎样才能在脑海中做到这一点。我从中得到的技巧是
>>=1
等于
/ 2
并且忽略余数。然而,我想,举个例子,如果
index = 4
index = 5
,那么在这两种情况下结果都是 2,这对我来说似乎很奇怪。

所以,我向GPT询问此事,他说他做错了。然后我问他哪一个是正确的,他说这个把戏是正确的,然后又说这是假的等等。所以我在网上查了一下这件事是否属实,但没有发现有人提及。

所以,我想知道是否有更有经验的人可以确认这个技巧是真实的还是另一个幻觉?

bit-manipulation bit-shift calculation
1个回答
0
投票

是的,右移 1 与除以 2 相同。

  • x >> 0
    ==
    x / 1
  • x >> 1
    ==
    x / 2
  • x >> 2
    ==
    x / 4
  • x >> 3
    ==
    x / 8

等等

因此,进行 right 移位可用于相同数字的乘法:

  • x << 0
    ==
    x * 1
  • x << 1
    ==
    x * 2
  • x << 2
    ==
    x * 4
  • x << 3
    ==
    x * 8

等等

© www.soinside.com 2019 - 2024. All rights reserved.