gpt4 book ai didi

C++数学/十六进制问题

转载 作者:太空狗 更新时间:2023-10-29 19:49:48 25 4
gpt4 key购买 nike

抱歉,如果这听起来有点“菜鸟”,但我不懂 C++,而且我正在查看有关 perlin 噪音的一些代码,当我遇到时试图弄明白

& 0x7fffffff

(n << 13) ^ n;

我不知道那些是什么意思。我知道 0x7fffffff是十六进制,但我不知道 & 是什么表示有什么帮助吗?

最佳答案

第一个表达式是位掩码。它基本上清除了数字的高位,或者等效地计算了超过 2^31 的数字的模数。

第二个表达式是移位,后跟异或。在算术上,这与将 n 乘以 2^13,然后翻转移位后的版本与其自身之间的所有公共(public)位是一回事。它在 perlin 噪声代码中的目的是计算 x、y 坐标的程序空间哈希,以便它们可用于为噪声发生器提供种子。

许多程序内容中都使用了相同类型的技术来创建动态变化的伪随机数生成器,这些生成器在空间中确定性地变化。这些散列基本上是复杂的、难以预测的、近乎随机的函数,通常是通过理论、猜测和实验的结合来发现的。因此,我不建议过多考虑为什么在这种情况下使用该特定公式。

关于C++数学/十六进制问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476323/

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