模棱两可的伪代码短语
Ambiguous pseudocode phrase
我正在寻找一些代码的伪代码,我遇到了短语
lowest 32 bits of
在网站上搜索了很长时间后,我找到了答案:
我们要做的是对64位数和0xffffffff进行AND运算得到最低的32位
我的代码
MT[i] = ((1812433253*(MT[i-1]^(((MT[i-1]))>>30)))+i) && 0xffffffff;
如果答案正确,你能快速解释一下为什么这个答案是正确的吗?如果这个答案不正确,你能给我正确答案吗?
此代码会给我 ((1812433253*(MT[i-1]^(((MT[i-1]))>>30)))+i)
的最低 32 位吗?
您正在使用 logical AND:
MT[i] = ((1812433253*(MT[i-1]^(((MT[i-1]))>>30)))+i) && 0xffffffff;
您想使用 bitwise AND:
MT[i] = ((1812433253*(MT[i-1]^(((MT[i-1]))>>30)))+i) & 0xffffffff;
第一个表达式将为您提供 true
(如果第一个值非零)或 false
。第二个表达式将为您提供该值的最低 32 位。
我正在寻找一些代码的伪代码,我遇到了短语
lowest 32 bits of
在网站上搜索了很长时间后,我找到了答案:
我们要做的是对64位数和0xffffffff进行AND运算得到最低的32位
我的代码
MT[i] = ((1812433253*(MT[i-1]^(((MT[i-1]))>>30)))+i) && 0xffffffff;
如果答案正确,你能快速解释一下为什么这个答案是正确的吗?如果这个答案不正确,你能给我正确答案吗?
此代码会给我 ((1812433253*(MT[i-1]^(((MT[i-1]))>>30)))+i)
的最低 32 位吗?
您正在使用 logical AND:
MT[i] = ((1812433253*(MT[i-1]^(((MT[i-1]))>>30)))+i) && 0xffffffff;
您想使用 bitwise AND:
MT[i] = ((1812433253*(MT[i-1]^(((MT[i-1]))>>30)))+i) & 0xffffffff;
第一个表达式将为您提供 true
(如果第一个值非零)或 false
。第二个表达式将为您提供该值的最低 32 位。