Bit String

From Elixir Wiki
Jump to navigation Jump to search

Bit String[edit]

A **bit string** is a fundamental data type in the **Elixir** programming language. It represents a sequence of bits, which can be used to store and manipulate binary data efficiently. In Elixir, bit strings are constructed using the `<<>>` syntax, and can consist of a combination of binary values, integers, and floats.

Syntax[edit]

In Elixir, the syntax for creating a bit string is as follows:

``` <<bitstring-value :: size-unit, bitstring-value :: size-unit, ..., bitstring-value :: size-unit>> ```

Here, `bitstring-value` represents either a binary value, an integer, or a float, while `size-unit` denotes the size of each individual value. The `size-unit` can be expressed using the following formats:

- `integer` - denotes the number of bits - `integer-type` - represents the size in bytes, where the type can be `u`, `s`, or `f` (unsigned, signed, or float) - `type` - specifies the size in bits, where the type can be `u`, `s`, or `f`

The `bitstring-value` size can be omitted, in which case it will be inferred from the length of the value. Additionally, the `bitstring-value :: size-unit` pattern can be repeated multiple times within the `<<>>` brackets to create compound bit strings.

Examples[edit]

Below are some examples illustrating how to create and manipulate bit strings in Elixir:

```elixir <<255::8, 10::4, 3.14::32-float>> ```

```elixir <<1::1, 0::1, 1::1, 0::1, 1::1, 0::1, 1::1, 0::1>> == <<170::8>> ```

Bitwise Operations[edit]

Elixir provides powerful bitwise operations that can be used to manipulate bit strings. These operations include bitwise `and`, `or`, `xor`, `not`, as well as left and right shifts.

Pattern Matching[edit]

Pattern matching is a core feature of Elixir, and it can be used effectively with bit strings. This allows for convenient extraction and decomposition of binary data in a concise and readable manner.

High-Level Functions[edit]

Elixir provides a range of high-level functions and modules to work with bit strings, making it easier to perform common operations such as encoding and decoding specific data formats or protocols.

Additional Resources[edit]

For more information on bit strings in Elixir, you may find the following resources helpful:

- Elixir Binary Syntax Guide - Elixir Bitwise Operations - Elixir Pattern Matching

References[edit]

Template:Reflist