我正在为base64编码器编写一个比特流,但它似乎无法找到访问原始位的方法.
说我有点串:
0100 1101 0110 0001 0110 1110
Run Code Online (Sandbox Code Playgroud)
在长生不老药中代表:
<<77, 97, 110>> # or the string "Man"
Run Code Online (Sandbox Code Playgroud)
我需要以6位的块为单位访问bitstring,以便将其编码为base64.怎么可能这样做?我没有很多使用原始二进制文件的经验,所以我可能会天真地这样做.
您可以从二进制文件中任意获取单个位组:
iex(1)> <<a :: 6, b :: 6, c:: 6, d::6>> = <<77, 97, 110>>
iex(2)> [a,b,c,d]
[19, 22, 5, 46]
Run Code Online (Sandbox Code Playgroud)
或者您可以使用for comprehension:
iex(3)> for <<x :: 6 <- <<77, 97, 110>> >>, do: x
[19, 22, 5, 46]
Run Code Online (Sandbox Code Playgroud)