Los bitstrings permiten trabajar con datos binarios de forma efectiva.
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 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 con ::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 entre 8.
Elixir ofrece azúcar sintáctica para trabajar con literales enteros en distintas formas:
0b1000001 = ?A = 65