練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

DMonkey: シフト演算子

コメントなし»

DMonkey のシフト演算子は JavaScript と異なります。

JavaScript DMonkey
<< 演算 符号なし左シフト
結果 -2147483648~2147483647
>> 演算 符号あり右シフト 符号なし右シフト
結果 -2147483648~2147483647 -2147483648~2147483647
>>> 演算 符号なし右シフト 符号なし右シフト
結果 0~4294967295 -2147483648~2147483647

見にくい表で申し訳ない。

今回は、シフトの際の符号の有無と演算結果を符号ありとなしのどちらとして解釈するかだけしか調べていません。それ以外で違うところもあるかも知れません。

DMonkey: ビット演算における小数の扱い

コメントなし»

JavaScript でビット演算のオペランドに小数を指定した場合、小数部を 0 方向に切り捨てて(round towards zero)、32ビットの整数に変換してから演算されます。

DMonkey では小数部を最近接偶数への丸め(round half to even)で整数化するため、演算結果が異なります。

alert (+1.5 | 0);   //  2 ※JavaSciprt では  1
alert (0 | -1.5);   // -2 ※JavaSciprt では -1