我試圖通過不同的方法實現它,但它仍然給錯誤,所以如何使用.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