Bitstrings permiten a los programadores trabajar con datos binarios de forma eficaz.
Puedes construir bitstrings de forma elegante con la forma especial <<>>.
<<0b101::3>> == <<5::3>> and <<5::3>> == <<5::size(3)>>
# => true
first = <<0b110::3>>
second = <<0b001::3>>
combined = <<first::bitstring, second::bitstring>>
# => <<49::size(6)>>
Puedes hacer coincidir patrones con la forma <<>> y usar esa coincidencia para descomponer datos binarios.
<<data_size::32, count::size(data_size)>> = <<8::32, 3::8>>
# => <<0, 0, 0, 8, 3>>
data_size
# => 8
count
# => 3
Puedes hacer coincidir el resto del bitstring usando ::bitstring.
<<_::32, remainder::bitstring>> = <<8::32, 3::8>>
# => <<0, 0, 0, 8, 3>>
remainder
# => <<3>>
El tipo de datos binarios es un tipo específico de bitstring en el que el número de bits es divisible por 8.
Elixir proporciona azúcar sintáctico para trabajar con literales enteros en diferentes formas:
0b1000001 = ?A = 65