Ruby でオブジェクトを記述する 16 進値のグループがあり、それらをすべて 1 つのビット バケットにまとめたいと考えています。C++ では、次のようにします。
int descriptor = 0 // or uint64_t to be safe
descriptor += (firstHexValue << 60)
descriptor += (secondHex << 56)
descriptor += (thirdHex << 52)
// ... etc
descriptor += (sixteenthHex << 0)
Rubyでも同じことをしたいのですが、Rubyは型付けされていないので、オーバーフローが心配です。Rubyで同じことをしようとすると、descriptor
64ビットが含まれていることを確認する方法はありますか? 記述子が設定されたら、32 ビットしか表現されておらず、その半分が失われていることに突然気付きたくありません! 上記と同じ結果を安全に達成するにはどうすればよいですか?
注: 関連する場合は、OS X 64 ビットで作業します。