Jaka jest różnica między binarnym a bitstringiem w Erlang?

W powłoce Erlang mogę wykonać następujące czynności:

A = 300.
    300
<<A:32>>.
    <<0, 0, 1, 44>>

Ale kiedy próbuję:

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

W pierwszym przypadku biorę liczbę całkowitą i używam składni łańcucha bitów do 32-bitowego pola. To działa zgodnie z oczekiwaniami. W drugim przypadku używamterm_to_binary BIF przekształca krotkę w plik binarny, z którego próbuję rozpakować określone bity za pomocą składni bitstring. Dlaczego pierwszy przykład działa, ale drugi przykład nie działa? Wygląda na to, że oboje robią bardzo podobne rzeczy.

questionAnswers(2)

yourAnswerToTheQuestion