在Ruby中将二进制字符串转换为十六进制

在Ruby中将二进制字符串转换为十六进制,ruby,binary,hex,Ruby,Binary,Hex,将二进制字符串转换为十六进制最有效的方法是什么?我正在尝试这样做: a = '1010' #Binary 然后变成 a = 'A' #Hexa 您可以先将其转换为整数,表示字符串为二进制(到i(2)),然后转换为十六进制(到s(16) 如果需要大写,可以对结果字符串调用upcase。可以先将其转换为整数,暗示字符串是二进制(到i(2)),然后转换为十六进制(到s(16) 如果需要大写,可以对生成的字符串调用upcase。to_i(2)不转换为十进制。它转换为整数。整数不是十

将二进制字符串转换为十六进制最有效的方法是什么?我正在尝试这样做:

a = '1010'    #Binary
然后变成

a = 'A'       #Hexa

您可以先将其转换为整数,表示字符串为二进制(
到i(2)
),然后转换为十六进制(
到s(16)


如果需要大写,可以对结果字符串调用
upcase

可以先将其转换为整数,暗示字符串是二进制(
到i(2)
),然后转换为十六进制(
到s(16)


如果需要大写,可以对生成的字符串调用
upcase

to_i(2)
不转换为十进制。它转换为整数。整数不是十进制、二进制或十六进制,它们只是。只有数字的字符串解释有基数,数字本身没有基数。@JörgWMittag澄清了答案。WDYT?
转换为_i(2)
不转换为十进制。它转换为整数。整数不是十进制、二进制或十六进制,它们只是。只有数字的字符串解释有基数,数字本身没有基数。@JörgWMittag澄清了答案。WDYT?
"1010".to_i(2).to_s(16) # => 'a'