在 Erlang shell 中,我可以执行以下操作:
A = 300.
300
<<A:32>>.
<<0, 0, 1, 44>>
但是当我尝试以下操作时:
B = term_to_binary({300}).
<<131,104,1,98,0,0,1,44>>
<<B:32>>
** exception error: bad argument
<<B:64>>
** exception error: bad argument
在第一种情况下,我采用一个整数并使用位串语法将其放入一个 32 位字段中。这按预期工作。在第二种情况下,我使用term_to_binary
BIF 将元组转换为二进制文件,我尝试使用位串语法从中解压缩某些位。为什么第一个示例有效,但第二个示例失败?似乎他们都在做非常相似的事情。