Ruby字节数组转换为十六进制字符串

Python018

Ruby字节数组转换为十六进制字符串,第1张

str = "Ruby"

str.split(//).each {|e|print (e.unpack('H*').to_s + "\n")}

#irb

# 52

# 75

# 62

# 79

# =>["R", "u", "b", "y"]

好了 首先是第一步转成16进制: icon = "22 12 41 2 1 8 43 211 42"# =>"22 12 41 2 1 8 43 211 42" icon.split.map {|i| i.to_i.to_s(16) }# =>["16", "c", "29", "2", "1", "8", "2b", "d3", "2a"] 然后是你说的格式化(不太明白你的意思,不知道是不是个位数前面要补0的意思): icon.split.map {|i| i.to_i.to_s(16) }.map { |s| s.size == 1 ? s.insert(0, "0") : s}# =>["16", "0c", "29", "02", "01", "08", "2b", "d3", "2a"] 最后拼起来: icon.split.map {|i| i.to_i.to_s(16) }.map { |s| s.size == 1 ? s.insert(0, "0") : s}.join=>"160c290201082bd32a"

我想你应该尝试一个字节转换成二进制代码时,通常是一个字节的十六进制表示,如E2,二进制为:11100010,也可以自己转换,你也可以自定义计算机科学计算器用十六进制数输入E2,然后点击二进制,你可以转换。