我有一组描述 ruby 对象的十六进制值,我想将它们全部串到一个位桶中。在 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 位上工作。