在Erlang中匹配二进制文件

jBe*_*Bee 6 erlang

例如:

<<Sync:11,B:2,C:2,D:1>> = <<2#1111111111101011>>.
** exception error: no match of right hand side value
Run Code Online (Sandbox Code Playgroud)

为什么?我认为变量Sync必须是2#11111111111,但事实并非如此.

key*_*one 9

如果您指定右侧的位数,它将起作用

<<Sync:11,B:2,C:2,D:1>> = <<2#1111111111101011:16>>.
Run Code Online (Sandbox Code Playgroud)

  • 整数段的默认大小为8位,与整数的大小无关.这就是为什么你必须在这种情况下给出16位的大小. (6认同)