Лучший вопрос задать
Почему ‹---------------- 5 :: 2 ›› == ‹› 1 :: 2 ››? Эликсир
Биты различаются по размеру, а не по количеству
В этой статье рассказывается о представлении битовых строк и двоичных файлов. Давай нырнем.
В Эликсире мы используем <<0>>
для двоичного (8 бит) представления. Однако мы можем сказать, сколько битов информации нам нужно, с помощью size (num), то есть <<5::size(3)>>
для 3
бит вместо size(8)
, которое используется по умолчанию. Чтобы быть более простым, мы можем использовать просто число, например <<5::3>>
. В зависимости от наших требований есть и другие способы представления, но для этой статьи должна быть известна как минимум указанная выше информация.
Дополнительную информацию о битах и двоичных файлах см. В следующей статье.
Здесь мы играем с двумя числами 5 и 1 в различных битовых формах.
Представительство ‹---------------- 5 :: 2 ››
Прежде чем понять приведенное выше представление, мы перейдем к формированию 8 бит.
<<5::8>>
Вышеупомянутое представление занимает 8 бит для 5. Двоичная форма 5 - 1 0 1
. В 8-битной форме это просто 0 0 0 0 0 1 0 1
.
<<5::2>>
В приведенном выше представлении 5 он дает только 2 бита, то есть 0 1
. Точно так же для 3 бит он дает 1 0 1
, а 4 бит дает 0 1 0 1
Представительство ‹---------------- 1 :: 2 ››
<<1::8>>
Приведенное выше представление принимает 8 бит для 1. Двоичная форма 2 - 01
. В 8-битной форме это просто 0 0 0 0 0 0 0 1
.
<<1::2>>
В приведенном выше представлении 1 он дает только 2 бита, то есть 0 1
.
Наблюдение
Если вы внимательно посмотрите здесь, 2 бит формы 5 уступает 0 1
и 2 бит формы 1 дает тоже 0 1
. Вот почему истинность <<5::2>> == <<1::2>>
равна true
.
Укажите, чтобы помнить
Истина для <<5::2>> == <<1::2>>
- true
, но если вы попытаетесь сопоставить их, получится false
.
<<5::2>> == <<1::2>> true <<5::2>> === <<1::2>> true match? <<5::2>>, <<1::2>> false
Картинка лучше тысячи слов.
Надеюсь, вам понравилось.
Счастливого кодирования и продолжайте улыбаться :)
Присоединяйтесь к нашему каналу Telegram Blackoders, чтобы получать обновления кода. В основном мы ориентируемся на Эликсир.
«Blackoders
EAT 🍕 - CODE🐞 - SLEEP😴 Код, мысли и идеи Ресурсы по кодированию, советы, видео, статьи и новости Мы следим и собираем… t .меня"
Посетите репозиторий GitHub в разделе Советы по Killer Elixir
Рад, если вы внесете свой вклад в ★