c ++数学/十六进制问题
|
抱歉,这听起来有点“没意思”,但我不知道c ++,我在寻找一些有关Perlin噪声的代码,试图在遇到时找出来
& 0x7fffffff
和
(n << 13) ^ n;
我不知道那是什么意思。我确实知道0x7fffffff
是十六进制,但是我不知道&
是什么意思吗?
没有找到相关结果
已邀请:
5 个回复
为陡土
茂坦湿床够
是C ++中的位AND运算符 按位与运算符(&)将第一个操作数的每个位与第二个操作数的对应位进行比较。如果两个位都为1,则将相应的结果位设置为1。否则,将相应的结果位设置为0。
是C ++中的按位左移运算符 <<运算符将其第一个操作数向左移动其第二个操作数给定的位数,并在右侧填充新的0位。
是C ++中的异或运算符 按位异或运算符将其第一个操作数的每个位与第二个操作数的对应位进行比较。如果一位为0,另一位为1,则将相应的结果位设置为1。否则,将相应的结果位设置为0。
因此,
将32位整数的第31位设置为零,并保留其他位的值。
与
左移,结果与
进行异或。
播匣扦阔食
是按位与运算符。因此,“ 0”会从32位整数中去除带符号的位。就是说,它使
的最左位为零。 在第二个运算中,第一个
使用作为左移运算符的left6ѭ运算符与13左移,并且该表达式的结果与
本身一起用于XOR运算。
敦肌
扭湘阀柿蹄
,
和
称为运算符。 Wikipedia页面上列出了C / C ++运算符,因此您可以了解这些运算符的名称,然后搜索Google以获取更多信息。
是用十六进制(基数16)表示的整数。
前缀表示它是十六进制。
可能是整数变量的名称,该变量定义在所引用的行上方几行。 括号用于将表达式分组在一起,因此在您的示例中,它们保证n在与n进行XOR运算之前向左移13位。如果没有括号,则运算顺序将由运算符优先级确定(在您的示例中,该运算符会给出相同的结果)。