如何在 Ruby 中将字符转换为位

How to turn characters to bits in Ruby

我只是想知道有没有什么方法或者class可以直接把字符串变成位,比如'h'变成'01001000'

更具体地说,是一种将单词、句子或整个文本文件转换为二进制文本的方法。

我知道有一些方法可以给出 ascii table 中字符的编号,例如

'h'.ord #=> 104

但我正在寻找一种方法,不仅可以将单个字符,还可以将字符串和可能的文本文件直接转换为二进制表示形式。

String#ord gives you the ascii code. 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

您可以使用 unpack:

'hello'.unpack('B*')
#=> ["0110100001100101011011000110110001101111"]
#     ^^^^^^^^
#     01101000 = h