我有一个二进制字符串,比方说
x = "c1\x98\xCCf3\x1C\x00.\x01\xC7\x00\xC0"
(实际上更长)。我需要将它表示为 Bignum,以便进一步转换为基本序列(大于 36)。
x.unpack('H*')[0].to_i
从值的第一个字节产生一个 Integer,而不是一个 Bignum。
最佳答案
无需使用unpack
并通过中间的十六进制字符串表示。
要将二进制字符串直接转换为数字(根据需要自动转换为 Bignum),您可以这样做:
"\xc1\x98\xCC\xf3\x1C\x00".bytes.inject {|a, b| (a << 8) + b }
=> 212862017674240
关于ruby - 将 ruby String 转换为 Bignum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814820/