我试图通过不同的方法实现它,但它仍然给错误,所以如何使用.ord来实现它还是有其他方法来实现它? 基本上我想要得到的字符串中的每个字符的ASCII值,然后通过使用.to_s(2)
这里将他们每个人在二进制是我的代码↓如何将字符串的ASCII值作为二进制数打印出来?
input = gets.chomp.split("").each { |s| s.ord.to_i }
puts input.to_s(2)
我试图通过不同的方法实现它,但它仍然给错误,所以如何使用.ord来实现它还是有其他方法来实现它? 基本上我想要得到的字符串中的每个字符的ASCII值,然后通过使用.to_s(2)
这里将他们每个人在二进制是我的代码↓如何将字符串的ASCII值作为二进制数打印出来?
input = gets.chomp.split("").each { |s| s.ord.to_i }
puts input.to_s(2)
试试这个
gets.chomp.chars.each { |ch| puts ch.ord }
chars
方法另一种方法split("")
您可以使用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位的字符。
你可以给一个代码,它的输出就像a = 1100001 b = 1100010 .... 这是终于代码↓ input = gets.chomp.chars.each {| ch |把ch.ord.to_s(2)} – user8269563
当然。 'input = gets.chomp.chars.each {| ch |放置“#{ch} =#{ch.ord.to_s(2)}”}' – Ursus