Треки
/
Elixir
Elixir
/
Салабус
/
Бінарні дані
Бі

Бінарні дані у Elixir

7 вправ

Про концепцію Бінарні дані

  • Тип бінарні дані є спеціалізацією типу бітовий рядок.
  • Бінарні дані складаються з байтів.
    • Байти складаються з 8 бітів.
    • Байти можуть представляти числа від 0 до 255
    • Працюючи з байтами, часто використовують шістнадцяткові цілі числа: від 0x00 до 0xFF.
  • Бінарні літерали визначають за допомогою спеціальної форми <<>>.
    • Якщо для байта використати ціле число, більше за 255, використовуються лише останні 8 бітів, якщо тільки не вказати одиницю та/або розмір за допомогою оператора ::.
  • За допомогою <>/2 можна зʼєднувати бітові рядки, бінарні дані та рядки тексту (англ. string).
<<255>> == <<0xFF>>
# Overflowing bits are truncated
<<256>> == <<0>>
<<256::size(16)>> == <<1, 0>>

<<"Hello">> == <<72, 101, 108, 108, 111>>

Нульовий байт - це інша назва для <<0>>.

Рядки тексту - це закодовані бінарні дані

  • Рядки тексту - це закодовані бінарні дані у форматі UTF-8.
# This string has a string length of 5, but is made up of 7 bytes
string = "cześć"
String.length(string) != byte_size(string)

# Even emoji strings are encoded binaries
"👍" == <<240, 159, 145, 141>>

Зіставлення зі зразком для бінарних даних

# Ignore the first 8 bytes, bind the remaining variable sized binary to `body`
<<_::binary-size(8), body::binary>>

Так само можна робити і з рядками тексту:

# bind the first 5 bytes to `name`,
# match the string literal " the ",
# bind remaining bytes to `species`
<<name::binary-size(5), " the ", species::binary>> = <<"Frank the Walrus">>
{name, species}
# => {"Frank", "Walrus"}
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Бінарні дані

Практика заблокована

Розблокуйте ще 1 вправу, щоб практикувати концепцію Бінарні дані