twitterのint32問題

[ruby]
num=2147483647
puts “num(bin)=”+num.to_s(2)+”“
puts “num=”+num.to_s(2).length.to_s+”bit”
[/ruby]

実行結果:
num(bin)=1111111111111111111111111111111
num=31bit

普通にintって宣言するとsigned int32になってて
post idが2の32乗÷2(=2147483647)を超えたからいろいろなところがおかしくなり始めたらしい。

こういうちょっとした計算というかバッチ処理的な用途にrubyって便利
というか、まだそのレベルでしかrubyを使えてない

Notes