В чем разница между двоичным и цепочкой битов в Erlang?
В оболочке Erlang я могу сделать следующее:
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, чтобы превратить кортеж в двоичный файл, из которого я пытаюсь распаковать определенные биты, используя синтаксис цепочки битов. Почему первый пример работает, а второй - не получается? Кажется, что они оба делают очень похожие вещи.