我想要将像“AAAAAAAAABI=”这样的Base64值转换为相应的整数。 我尝试使用Base64.decode64,但它并没有明显地说明它将如何成为解决方案的一部分。
irb > require 'base64'
=> true
irb > Base64.decode64('AAAAAAAAABI=')
=> "\x00\x00\x00\x00\x00\x00\x00\x12"
我想要将像“AAAAAAAAABI=”这样的Base64值转换为相应的整数。 我尝试使用Base64.decode64,但它并没有明显地说明它将如何成为解决方案的一部分。
irb > require 'base64'
=> true
irb > Base64.decode64('AAAAAAAAABI=')
=> "\x00\x00\x00\x00\x00\x00\x00\x12"
String#unpack
获取更多关于它能做什么的信息。require 'base64'
i = Base64.decode64('AAAAAAAAABI=')
i.unpack('q*').first
# => 1297036692682702848
unpack
,那么你可以摆脱base64
库并完全使用unpack
;实际上,Base64.decode64
被实现为unpack("m").first
,因此你的代码等价于'AAAAAAAAABI='.unpack('m').first.unpack('q*').first
。 - sawa