gpt4 book ai didi

javascript - 数学随机和算术移位

转载 作者:行者123 更新时间:2023-11-28 02:21:16 25 4
gpt4 key购买 nike

如果我在 JavaScript 中有以下代码:

var index1 = (Math.random() * 6) >> 0;
var index2 = Math.floor(Math.random() * 6);

index1index2 的结果介于 06 之间。

我一定对我对 >> 运算符的理解感到困惑。我认为通过使用 arithmetic shift index1 的结果将介于 16 之间。

我注意到,但是我不需要对 index1 使用 Math.floor()Math.round()如果我使用 >> 运算符。

我知道我可以通过向两个索引添加 1 来实现此目的,但我希望有更好的方法来确保结果从 16 而不是添加 1

我知道 bitwise operators将它们的操作数视为 32 位(零和一)的序列,而不是十进制、十六进制或八进制数。例如,十进制数字 9 的二进制表示形式为 1001。按位运算符对这种二进制表示形式执行运算,但它们返回标准 JavaScript 数值。

更新:

我在这个CAAT中看到了原始用法tutorial在第 26 行,想知道这是否真的会返回 16 之间的随机数,而且它似乎只会返回一个随机数介于 06 之间。所以你永远不会真正看到 anim1.png 鱼图像!

提前感谢您的任何启发。

最佳答案

维基百科说“(负数的算术右移相当于在一些历史计算机所使用的带符号数的补码表示中使用向 0 舍入的除法。)”

不完全是一个答案,但想法是 >> 0 确实是特定的,不应该一般用于获取 1 到 6 之间的范围。

大多数人会告诉你这样做

 Math.floor((Math.random()*10)+1);

关于javascript - 数学随机和算术移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15630141/

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