https://github.com/ksss/overflow
とは言え作り途中なのに見切り発車的に出しちゃいました……!
Rubyでは桁あふれは通常有り得ません。Fixnumを超える数値(0x4000_0000_0000_0000以上?)になるとBignumに自動的に切り替わります。
しかしbit操作をしてわざと桁あふれを起こしたいとき、Rubyでは計算のたびにこんな感じで& 0xffffffff
なんて書いていくことになり面倒なことになります。こんなときはOverflowが役立ちます。
OverflowではCの型をラップしてFixnumと同じ(似て非なるものですが……)メソッドを使って指定した範囲を超えるような計算をた場合、ワザとあふれた分を捨ててしまいます。
こんなものが何に役立つかというとまあ特に考えていません!!!
ただmurmur_hashを書いてみると毎回こんな感じに& 0xffffffff
と書いているとCと同じように書ければCと同じように考えてコードが書けるなと思いつき書いてみました。
Rubyでワザと桁あふれ計算をさせたい場合は是非Overflowをよろしくお願いします!