预计会截断一个字节

时间:2016-03-17 09:02:30

标签: elixir

当我传递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?

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)>>