为什么 Elixir 位串的最后一位默认为 1?
Why does the last bit of an Elixir bitstring default to 1?
创建 3 位的位串:
b = <<1 :: 3>>
使用位串理解来显示每个位的值:
for <<x :: 1 <- b>>, do: inspect x
输出:
["0", "0", "1"]
注意最后一位是 1,不是 0。
为什么默认情况下所有位都不为 0,是否可以通过某种方式实现?
代码
b = <<1 :: 3>>
有效地将长度为 3 位的位串设置为值 1 (≡ 001)
。要初始化位串以将所有位设置为零,请使用:
b = <<0 :: 3>>
检查:
b = <<0 :: 3>>
for <<x :: 1 <- b>>, do: inspect x
#⇒ ["0", "0", "0"]
旁注: e. G。 b = <<3 :: 3>>
将导致按位表示 3 ≡ 011
等
创建 3 位的位串:
b = <<1 :: 3>>
使用位串理解来显示每个位的值:
for <<x :: 1 <- b>>, do: inspect x
输出:
["0", "0", "1"]
注意最后一位是 1,不是 0。
为什么默认情况下所有位都不为 0,是否可以通过某种方式实现?
代码
b = <<1 :: 3>>
有效地将长度为 3 位的位串设置为值 1 (≡ 001)
。要初始化位串以将所有位设置为零,请使用:
b = <<0 :: 3>>
检查:
b = <<0 :: 3>>
for <<x :: 1 <- b>>, do: inspect x
#⇒ ["0", "0", "0"]
旁注: e. G。 b = <<3 :: 3>>
将导致按位表示 3 ≡ 011
等