Bi

Binarios en Elixir

7 ejercicios

Acerca de Binarios

  • El tipo binary es una especialización del tipo bitstring.
  • Los binarios están compuestos por bytes.
    • Un byte son 8 bits.
    • Los bytes pueden representar números desde 0 hasta 255.
    • Los valores enteros hexadecimales son comunes cuando trabajas con bytes: de 0x00 a 0xFF.
  • Los literales binarios se definen usando la forma especial <<>>.
    • Si usas un entero mayor que 255 para un byte, solo se usan los últimos 8 bits, a menos que especifiques la unidad y/o el tamaño a usar con el operador ::.
  • Se puede usar <>/2 para concatenar bitstrings, binarios o strings.
<<255>> == <<0xFF>>
# Overflowing bits are truncated
<<256>> == <<0>>
<<256::size(16)>> == <<1, 0>>

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

Un byte nulo es otro nombre para <<0>>.

Los strings son datos binarios codificados

  • Los strings son datos binarios codificados en formato 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>>

Coincidencia de patrones en datos binarios

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

Esto también se puede hacer con strings:

# 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"}
Editar en GitHub El enlace se abre en una ventana o pestaña nueva

Aprende Binarios

La práctica está bloqueada

Desbloquea 1 ejercicio más para practicar Binarios