如何将字符串中字符的ASCII值打印为二进制数?

时间:2017-07-15 11:33:42

标签: arrays ruby binary ascii each

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

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

2 个答案:

答案 0 :(得分:1)

试试这个

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

chars方法是执行split("")

的另一种方法

答案 1 :(得分:1)

您可以使用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位的字符。