2017-07-15 70 views
0

我試圖通過不同的方法實現它,但它仍然給錯誤,所以如何使用.ord來實現它還是有其他方法來實現它? 基本上我想要得到的字符串中的每個字符的ASCII值,然後通過使用.to_s(2) 這裏將他們每個人在二進制是我的代碼↓如何將字符串的ASCII值作爲二進制數打印出來?

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

回答

1

試試這個

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

chars方法另一種方法split("")

+0

你可以給一個代碼,它的輸出就像a = 1100001 b = 1100010 .... 這是終於代碼↓ input = gets.chomp.chars.each {| ch |把ch.ord.to_s(2)} – user8269563

+0

當然。 'input = gets.chomp.chars.each {| ch |放置「#{ch} =#{ch.ord.to_s(2)}」}' – Ursus

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位的字符。

相關問題