如何从二进制中获取N位

时间:2011-03-11 09:32:15

标签: erlang

我有一些二进制文件,如何从中获取N位? 例如:<<< 2#101>>如何获得第一位?

2 个答案:

答案 0 :(得分:8)

使用二进制模式匹配:

1> <<B:1, Rest/bitstring>> = <<2#101>>.
<<5>>
2> B.
0
3> Rest.
<<5:7>>

您需要使用bitstring作为类型,因为它不再是8位的倍数(binary类型需要)。 Rest现在是7位。

答案 1 :(得分:0)

请查看文档中的Erlang Bit语法说明,该说明应该澄清:

http://www.erlang.org/documentation/doc-5.6/doc/programming_examples/bit_syntax.html

当我开始学习Erlang时,我写了一个使用ID3标签的小例子(并不是说我在这方面做得很远):

http://citizen428.net/archives/993