我正在寫一個比特流到base64編碼器,它的赫克,似乎無法找到一種方式來訪問原始位。從二進制獲取位
說我有位串:
0100 1101 0110 0001 0110 1110
代表在靈藥爲:
<<77, 97, 110>> # or the string "Man"
我需要訪問該位串中的6位塊,以它編碼爲base64。一個人會怎麼做?我沒有很多使用原始二進制文件的經驗,所以我可能會天真地做這件事。
我正在寫一個比特流到base64編碼器,它的赫克,似乎無法找到一種方式來訪問原始位。從二進制獲取位
說我有位串:
0100 1101 0110 0001 0110 1110
代表在靈藥爲:
<<77, 97, 110>> # or the string "Man"
我需要訪問該位串中的6位塊,以它編碼爲base64。一個人會怎麼做?我沒有很多使用原始二進制文件的經驗,所以我可能會天真地做這件事。
您可以任意採取從二進制個體位組:
iex(1)> <<a :: 6, b :: 6, c:: 6, d::6>> = <<77, 97, 110>>
iex(2)> [a,b,c,d]
[19, 22, 5, 46]
或者你可以使用for comprehension:
iex(3)> for <<x :: 6 <- <<77, 97, 110>> >>, do: x
[19, 22, 5, 46]
既然你提到,你的最終目標是編碼位串爲base64 ,您可以使用the :base64
module:
iex> :base64.encode "Man"
"TWFu"
或'Base.encode64(「Man」)' – sasajuric 2015-02-11 21:58:45
啊不知道那個,謝謝! – 2015-02-12 05:13:27
完美,謝謝! – greggreg 2015-02-12 04:00:00