JavaScriptで次のコードを使用している場合:
var index1 = (Math.random() * 6) >> 0;
var index2 = Math.floor(Math.random() * 6);
index1またはの結果はとindex2の間のどこかに0あり6ます。
>>オペレーターの理解と混同しなければなりません。算術シフトを使用すると、の結果はとindex1の間のどこかにあると思いました。16
ただし、演算子を使用Math.floor()する場合は使用するMath.round()必要がないことに気づいています。index1>>
両方のインデックスに追加することでこれを実現できることはわかっていますが、を追加するのではなく、結果がからに1なるようにするためのより良い方法があることを望んでいました。161
ビット単位の演算子は、オペランドを10進数、16進数、または8進数ではなく、32ビット(0と1)のシーケンスとして扱うことを知っています。たとえば、10進数の9のバイナリ表現は1001です。ビット演算子はそのようなバイナリ表現に対して操作を実行しますが、標準のJavaScript数値を返します。
アップデート:
26行目のこのCAATチュートリアルで元の使用法を見て、それが実際にとの間の乱数を返すかどうか疑問に思っていました。との間の乱数しか返さないようです。だから、実際に魚の画像を見ることは決してないでしょう!1606anim1.png
啓蒙をよろしくお願いします。