> For the complete documentation index, see [llms.txt](https://docs.onum.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.onum.com/pipelines/actions/transformation/field-transformation/field-transformation-operations/data-format/to-hex.md).

# To hex

## Description

This operation is used to convert a string to a hexadecimal code. Hexadecimal encoding is often used to represent binary data in a readable, ASCII-compatible format.

***

## Data types

These are the input/output expected data types for this operation:

### Input data

`String` - Strings you want to encode.

### Output data

`String` - Resulting hexadecimal codes.

***

## Parameters

These are the parameters you need to configure to use this operation (mandatory parameters are marked with a <mark style="color:red;">**\***</mark>):

<details>

<summary>Delimiter</summary>

Specify how you want to delimit the bytes of your hexadecimal codes. Choose between:

* **Space** - Assumes that each byte (two hex characters) is separated by a single space.
* **Percent** - Assumes that each hex byte is separated by a percent sign (`%`)
* **Comma** - Assumes that each hex byte is separated by a comma (`,`)
* **Semi-colon** - Assumes that each hex byte is separated by a semi-colon (`;`)
* **Colon** - Assumes that each hex byte is separated by a colon (`:`)
* **Line feed** - Assumes that each byte is on a new line, separated by line breaks.
* **CRLF** - Setting the delimiter to `CRLF` (`\r\n`) will place a CRLF sequence after each hex byte or hex pair in the output.
* **0x** - Assumes that each hexadecimal byte or value in the input starts with the `0x` prefix. The operation will ignore the `0x` part and treat the following characters as hexadecimal data.
* **0x with comma** - This option is similar to the `0x` option but also expects each hex value to be separated by a comma. Each value in the input should be prefixed by `0x` and separated from the next by a comma.
* **None** - This option assumes that the hexadecimal data is a continuous string without any separators between each byte. This is the default value.

</details>

<details>

<summary>Bytes per line<mark style="color:red;"><strong>*</strong></mark></summary>

Number of bytes to include per line before inserting a line break. Set it to `0` for no line breaks.

</details>

***

## Example

Suppose you want to **encode** a series of events into **hexadecimal-encoded** data:

1. In your Pipeline, open the required [Action](https://onum.gitbook.io/onum-docs/the-workspace/pipelines/actions) configuration and select the input **Field**.
2. In the **Operation** field, choose **To Hex**.
3. Set **Delimiter** to `Space`.
4. Set **Bytes per line** to `0`.
5. Give your **Output field** a name and click **Save**. The values in your input field will be encoded. For example:

<pre><code><strong>Hello World! -> 48 65 6c 6c 6f 20 57 6f 72 6c 64
</strong></code></pre>

{% hint style="info" %}
You can try out operations with specific values using the **Input** field above the operation. You can enter the value in the example above and check the result in the **Output** field.
{% endhint %}
