タグ

ブックマーク / chaperatta.hatenadiary.org (1)

  • JavaScript で 32bit int を扱う - fujidigの雑記

    追記 (2014/3/21) 最近ではMath.imulというものがあります。 Math.imul() - JavaScript | MDN signed int への変換: x | 0 unsigned int への変換: x >>> 0 これで大抵の場合はうまくいく。 IEEE64bit浮動小数点数では整数は2の53乗までしか正確に表現できない。(http://www.tokumaru.org/d/20070531.html) そのため掛け算の結果がそれを超える場合は結果が合わないことがある ruby -e 'puts 123456789 * 123456789 & 0xffffffff' 2537071545 # 正しい結果 js -e 'print(123456789 * 123456789 >>> 0)' 2537071544 # 間違った結果そういう場合は掛け算を自分で実装して

    JavaScript で 32bit int を扱う - fujidigの雑記
  • 1