我只是想知道是否有任何方法或类可以将字符串直接转换为位,例如将'h'
转换为'01001000'
。
更具体地说,是将单词,句子或整个文本文件转换为二进制文本的方法。
我知道有些方法可以给出ascii表中的字符数,例如
'h'.ord #=> 104
但是我正在寻找一种方法,该方法不仅可以将单个字符转换为字符串,还可以将文本文件转换为二进制表示形式。
答案 0 :(得分:1)
String#ord
为您提供了ASCII码。 Integer#to_s
将基数作为参数:
"a".ord
=> 97
97.to_s(2)
=> "1100001"
"a".ord.to_s(2)
=> "1100001"
"a".ord.to_s(2).chars.map(&:to_i)
=> [1, 1, 0, 0, 0, 0, 1]
# ^ ^ ^ ^ ^ ^ ^
# 64 32 16 8 4 2 1
#
# 64 + 32 + 1 = 97
答案 1 :(得分:1)
您可以使用unpack
:
'hello'.unpack('B*')
#=> ["0110100001100101011011000110110001101111"]
# ^^^^^^^^
# 01101000 = h