2011-03-15 24 views
6

Ví dụ:binaries Matching trong Erlang

<<Sync:11,B:2,C:2,D:1>> = <<2#1111111111101011>>. 
** exception error: no match of right hand side value 

Tại sao? Tôi nghĩ rằng biến Sync phải là 2 # 11111111111 nhưng nó không phải.

Trả lời

9

nó sẽ làm việc nếu bạn sẽ xác định số bit trong phía bên tay phải

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

Kích thước mặc định của một phân khúc nguyên là 8 bit, không phụ thuộc vào kích thước của số nguyên. Đó là lý do tại sao bạn phải cho kích thước trong trường hợp này để có được 16 bit. – rvirding