ruby - 将 ruby​​ String 转换为 Bignum

标签 ruby bignum

我有一个二进制字符串,比方说

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/

相关文章:

ruby - 使用 Ruby 删除数组中字符串的最佳方法

ruby-on-rails - Rails collection_select : save null instead of empty string when 'blank' option selected

c++ - 如何找到一个号码的日志?

python - long <-> str 二进制转换

optimization - 加速 x64 汇编器 ADD 循环

java - 为什么 JRuby 不能识别 BigNums 而 Ruby 可以?

algorithm - 二进制到十进制的基数移位

ruby-on-rails - Rails 控制台中的 Postgres 连接过多

ruby - 这两种使用 put 命令的方法有什么区别?

ruby-on-rails - 如何在 ubuntu 14.04 中知道 ruby​​ 位