2014-02-10 60 views
0

我對ruby非常陌生,目前我正在嘗試編寫一個簡單的ruby程序,該程序從文件讀取1個字節塊並生成一個頻率列表,塊。但是,我只是試圖索引一個256字節的數組,對應於每個可能的字節值與我讀入的1個字節。在ruby中將字符串轉換爲其數字二進制值

問題似乎是,to_i函數沒有根據它們的二進制值轉換字符,即'A'變爲0而不是ascii編碼65.是否有一些其他函數內置於ruby我可以在這裏使用?

freq = Array(0..255) 

File.open('temp.dat') do |file| 
    until file.eof? 
    buf = file.read(1) 
    puts "#{freq.at(buf.to_i)}" 
    end 
end 

回答

0

你可以做以下之一: -

1) puts "#{freq.at(buf.ord)}" 

2) puts "#{freq.at(buf.unpack('C')[0])}" 
相關問題