gpt4 book ai didi

bit-manipulation - 按位移位(左移或右移)有什么作用以及它的用途是什么?

转载 作者:行者123 更新时间:2023-12-03 05:36:39 24 4
gpt4 key购买 nike

我见过运算符>><<在我看过的各种代码中(我没有真正理解它们),但我只是想知道它们实际上做了什么以及它们的实际用途是什么。

如果类次类似于 x * 2x / 2 ,与实际使用 * 的真正区别是什么?和/运营商?性能有差异吗?

最佳答案

这里是an applet您可以在其中执行一些位操作,包括移位。

你有一个位的集合,并且你将其中一些移动到了它们的范围之外:

1111 1110 << 2
1111 1000

它从右侧开始填充新的零。 :)

0001 1111 >> 3
0000 0011

从左侧填充。一种特殊情况是前导 1。它通常表示负值 - 取决于语言和数据类型。通常需要的是,如果向右移动,第一位保持原样。

1100 1100 >> 1
1110 0110

并且它在多个类次中都是保守的:

1100 1100 >> 2
1111 0011

如果您不想保留第一位,则可以使用(据我所知,在 Java、Scala、C++、C 中,也许更多)三重符号运算符:

1100 1100 >>> 1
0110 0110

在另一个方向上没有任何等价物,因为它没有任何意义 - 也许在您非常特殊的上下文中,但在一般情况下没有意义。

从数学上来说,左移一次是*=2,两次左移是*=4,依此类推。右移是 a/= 2 等等。

关于bit-manipulation - 按位移位(左移或右移)有什么作用以及它的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6385792/

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