Почему последний бит цепочки битов эликсира по умолчанию равен 1? - PullRequest
0 голосов
/ 23 мая 2018

Создание цепочки битов из 3 битов:

b = <<1 :: 3>>

Использование понимания цепочки битов для отображения значения каждого бита:

for <<x :: 1 <- b>>, do: inspect x

Вывод:

["0", "0", "1"]

Обратите внимание, что последний бит равен 1, а не 0.

Почему все биты по умолчанию не равны 0 и можно ли это как-то достичь?

1 Ответ

0 голосов
/ 24 мая 2018

Код

b = <<1 :: 3>>

эффективно устанавливает битовую строку длиной 3 бита в значение 1 (≡ 001).Чтобы инициализировать цепочку битов, чтобы все биты были установлены в ноль, используйте:

b = <<0 :: 3>>

Проверка:

b = <<0 :: 3>>
for <<x :: 1 <- b>>, do: inspect x
#⇒ ["0", "0", "0"]

Sidenote: например, b = <<3 :: 3>> приведет к побитовомупредставление 3 ≡ 011 и т. д.

...