【问题标题】:How to print the ASCII value of characters in a string as binary numbers?如何将字符串中字符的 ASCII 值打印为二进制数?
【发布时间】:2017-12-20 10:10:27
【问题描述】:

我正在尝试通过不同的方法实现它,但它仍然给出错误那么如何使用 .ord 来实现它或有任何其他方法来实现它? 基本上我想获取字符串中每个字符的 ASCII 值,然后使用.to_s(2) 将它们中的每一个转换为二进制 这是我的代码↓

input = gets.chomp.split("").each { |s| s.ord.to_i }
puts input.to_s(2)

【问题讨论】:

    标签: arrays ruby binary ascii each


    【解决方案1】:

    试试这个

    gets.chomp.chars.each { |ch| puts ch.ord }
    

    chars 方法是 split("") 的另一种方法

    【讨论】:

    • 你能不能给出一个代码,所以它的输出就像 a = 1100001 b = 1100010 .... 最后是代码↓ input = gets.chomp.chars.each { |ch|把 ch.ord.to_s(2) }
    • 当然。 input = gets.chomp.chars.each { |ch| puts "#{ch}= #{ch.ord.to_s(2)}" }
    【解决方案2】:

    您可以使用each_codepoint 迭代字符串的代码点,使用printf%b 将其格式化为二进制数。

    'foo bar'.each_codepoint { |c| printf("%07b\n", c) }
    

    输出:

    1100110
    1101111
    1101111
    0100000
    1100010
    1100001
    1110010
    

    07 前缀将 最小 宽度设置为 7,并用 0 填充缺失位(有关格式选项,请参阅 sprintf)。不过,可能会有超过 7 位的字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2011-01-24
      相关资源
      最近更新 更多