Erlang 如何从二进制文件中获取N位

Erlang 如何从二进制文件中获取N位,erlang,Erlang,我有一些二进制文件,如何从中获取N位? 例如:如何获得第一位?使用二进制模式匹配: 1> <<B:1, Rest/bitstring>> = <<2#101>>. <<5>> 2> B. 0 3> Rest. <<5:7>> 您需要使用bitstring作为类型,因为它不再是二进制类型所需的8位的倍数。Rest现在是7位。请查看文档中的Erlang位语法解释,这应该会澄清一些问题:

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

使用二进制模式匹配:

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

您需要使用bitstring作为类型,因为它不再是二进制类型所需的8位的倍数。Rest现在是7位。

请查看文档中的Erlang位语法解释,这应该会澄清一些问题:

当我开始学习Erlang时,我用ID3标记写了一个小例子,但这并不是说我在这方面做得很好:


感谢您使用ID3标记的示例,它非常有用。在函数parse_ID3中,T:30是元素T大小30字节,但例如,我们可以声明变量M=其中H为5位,T为3位。二进制sintax中字节和位之间的差异在哪里?