当我传递2个大小的位时,如下所示:
iex(11)> <<2 :: size(2)>>
我在iex中输出了输出(我确定了位的大小)
<<2::size(2)>>
但是当我在iex中写下来时
iex(12)> <<3 :: size(2)>>
我有
<<3::size(2)>>
但预计
<<1::size(2)>>
并且按4
iex(13)> <<4 :: size(2)>>
<<0::size(2)>>
我已经零了,因为它是对的,但有3个为什么我有3而不是1?
答案 0 :(得分:2)
size(2)
表示2位,可以容纳4(2 ^ 2)个值:0,1,2或3。
如果您希望3成为1,您似乎希望存储1位。为此,请使用size(1)
:
iex> <<3::size(1)>>
<<1::size(1)>>