# Encodings: Integer

Do you want to help improve these docs? Edit this page on GitHub

`BOUNDED_MULTIPLE_8BITS_ENUM_FIXED`

The encoding consists of the integer value divided by the absolute
`multiplier`

, minus the ceil of `minimum`

divided by the absolute `multiplier`

,
encoded as an 8-bit fixed-length unsigned integer.

### Options

Option | Type | Description |
---|---|---|

`minimum` |
`int` |
The inclusive minimum value |

`maximum` |
`int` |
The inclusive maximum value |

`multiplier` |
`int` |
The multiplier value |

### Conditions

Condition | Description |
---|---|

`value >= minimum` |
The input value must be greater than or equal to the minimum |

`value <= maximum` |
The input value must be less than or equal to the maximum |

`value % multiplier == 0` |
The input value must be divisible by the multiplier |

`floor(maximum / abs(multiplier)) - ceil(minimum / abs(multiplier)) < 2 ** 8` |
The divided range must be representable in 8 bits |

### Examples

Given the input value 15, where the minimum is 1, the maximum is 19, and the multiplier is 5, the encoding results in the 8-bit unsigned integer 2:

```
+------+
| 0x02 |
+------+
```

`FLOOR_MULTIPLE_ENUM_VARINT`

The encoding consists of the integer value divided by the absolute
`multiplier`

, minus the ceil of `minimum`

divided by the absolute `multiplier`

,
encoded as a Base-128 64-bit Little Endian variable-length unsigned integer.

### Options

Option | Type | Description |
---|---|---|

`minimum` |
`int` |
The inclusive minimum value |

`multiplier` |
`int` |
The multiplier value |

### Conditions

Condition | Description |
---|---|

`value >= minimum` |
The input value must be greater than or equal to the minimum |

`value % multiplier == 0` |
The input value must be divisible by the multiplier |

### Examples

Given the input value 1000, where the minimum is -2 and the multiplier is 4, the encoding results in the Base-128 64-bit Little Endian variable-length unsigned integer 250:

```
+------+------+
| 0xfa | 0x01 |
+------+------+
```

`ROOF_MULTIPLE_MIRROR_ENUM_VARINT`

The encoding consists of the floor of `maximum`

divided by the absolute
`multiplier`

, minus the integer value divided by the absolute `multiplier`

,
encoded as a Base-128 64-bit Little Endian variable-length unsigned integer.

### Options

Option | Type | Description |
---|---|---|

`maximum` |
`int` |
The inclusive maximum value |

`multiplier` |
`int` |
The multiplier value |

### Conditions

Condition | Description |
---|---|

`value <= maximum` |
The input value must be less than or equal to the maximum |

`value % multiplier == 0` |
The input value must be divisible by the multiplier |

### Examples

Given the input value 5, where the maximum is 16 and the multiplier is 5, the encoding results in the Base-128 64-bit Little Endian variable-length unsigned integer 2:

```
+------+
| 0x02 |
+------+
```

`ARBITRARY_MULTIPLE_ZIGZAG_VARINT`

The encoding consists of the the integer value divided by the absolute
`multiplier`

encoded as a ZigZag-encoded Base-128 64-bit Little Endian
variable-length unsigned integer.

### Options

Option | Type | Description |
---|---|---|

`multiplier` |
`int` |
The multiplier value |

### Conditions

Condition | Description |
---|---|

`value % multiplier == 0` |
The input value must be divisible by the multiplier |

### Examples

Given the input value 10, where the multiplier is 5, the encoding results in the Base-128 64-bit Little Endian variable-length unsigned integer 4:

```
+------+
| 0x04 |
+------+
```