将十六进制字符串转换(解码)为二进制字符串

17 ruby

我怎么能转换"1234567890""\x12\x34\x56\x78\x90"Ruby中?

pat*_*ick 29

试试这个:

["1234567890"].pack('H*')
Run Code Online (Sandbox Code Playgroud)


Vik*_*ary 11

Ruby 1.8 -

hex_string.to_a.pack('H*')
Run Code Online (Sandbox Code Playgroud)

Ruby 1.9/Ruby 1.8 -

Array(hex_string).pack('H*')
Run Code Online (Sandbox Code Playgroud)


sic*_*ckp 7

假设您有一个结构良好的十六进制字符串(十六进制数字对),您可以简单有效地打包到二进制或解包为十六进制,如下所示:

string = '0123456789ABCDEF'
binary = [string].pack('H*')     # case-insensitive
 => "\x01#Eg\x89\xAB\xCD\xEF"
hex = binary.unpack('H*').first  # emits lowercase
 => "012345679abcdef"
Run Code Online (Sandbox Code Playgroud)


Kev*_*son -1

(0..4).map { |x| "0x%X" % (("1234567890".to_i(16) >> 8 * x) & 255) }.reverse
Run Code Online (Sandbox Code Playgroud)