在Erlang中匹配二进制文件

在Erlang中匹配二进制文件,erlang,Erlang,例如: <<Sync:11,B:2,C:2,D:1>> = <<2#1111111111101011>>. ** exception error: no match of right hand side value =。 **异常错误:右侧值不匹配 为什么??我认为变量Sync必须是2#11111111,但它不是。如果您在右侧指定位数,它将起作用 <<Sync:11,B:2,C:2,D:1>> = <<2#1

例如:

<<Sync:11,B:2,C:2,D:1>> = <<2#1111111111101011>>.
** exception error: no match of right hand side value
=。
**异常错误:右侧值不匹配

为什么??我认为变量Sync必须是2#11111111,但它不是。

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

<<Sync:11,B:2,C:2,D:1>> = <<2#1111111111101011:16>>.
=。

整数段的默认大小为8位,与整数的大小无关。这就是为什么在这种情况下必须给出大小才能得到16位。