【发布时间】:2012-05-30 17:08:24
【问题描述】:
在 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 将元组转换为二进制,我尝试使用位串语法从中解压缩某些位。为什么第一个示例有效,但第二个示例失败?看起来他们都在做非常相似的事情。
【问题讨论】:
标签: erlang binary-data bitstring