---
title: HexConverter
summary: API reference for HexConverter.
status: draft
owner: <owner>
last_reviewed: 2026-07-23
library: SAIF.Framework.BaseN
reference_type: package
---

# HexConverter

`HexConverter` is a concrete `ConverterBase` subclass that represents base 16 (hexadecimal). It overrides `Base`, `ConvertAlphaToNumeric`, and `ConvertNumericToAlpha` to map hex digits A–F and enforces strict bounds checking.

## Purpose
- Provide an `IConverter` implementation for hexadecimal (base 16) numeric conversion, including A–F digit mapping.

## Context
- Namespace: `SAIF.Framework.BaseN`
- Assembly/package: `SAIF.Framework.BaseN` (also bundled into the `SAIF.BOF.Framework` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `Base` | `Public Overrides ReadOnly Property Base() As Integer` | Returns `16`. |
| `ConvertAlphaToNumeric` | `Public Overrides Function ConvertAlphaToNumeric(ByVal input As String) As Integer` | Numeric input `0`–`9` returned directly (after bounds check against `Base`); letters `"A"`–`"F"` (case-insensitive) mapped to `10`–`15`; any other value throws `ConverterException` ([BR-001](../../business-rules.md#br-001-hexadecimal-digit-must-not-exceed-base-16)). |
| `ConvertNumericToAlpha` | `Public Overrides Function ConvertNumericToAlpha(ByVal input As Integer) As String` | Maps `10`–`15` to `"A"`–`"F"`; other in-range values returned as their numeric string; throws `ConverterException` if `input > Base` ([BR-001](../../business-rules.md#br-001-hexadecimal-digit-must-not-exceed-base-16)). |

## Inherited public members

Members in this section are inherited from `ConverterBase` in `SAIF.Framework.BaseN`. They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| `FormatBaseN` | `Public Overridable Function FormatBaseN(ByVal values As Integer()) As String` | Default: renders a digit array right-to-left as a string, using this type's overridden `ConvertNumericToAlpha`. | `SAIF.Framework.BaseN` — `ConverterBase` |

## Behavioral notes
- Unlike `ConverterBase`'s default (silent-zero) behavior, `HexConverter` throws `ConverterException` when a digit value exceeds `Base` (16), enforcing strict input validation ([BR-001](../../business-rules.md#br-001-hexadecimal-digit-must-not-exceed-base-16)).
- Digit letters are matched case-insensitively via `input.ToUpper`.

## Constraints and usage notes
- Callers must catch `ConverterException` when passing potentially out-of-range or invalid digit values to `ConvertAlphaToNumeric`/`ConvertNumericToAlpha`.

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified. Statements marked with
> † were retrieved from dependency library documentation via the Legends CLI RAG service. They
> describe inherited behavior from the indicated origin library and should be verified if the
> dependency version changes.

## Sources
- `SAIF.Framework.BaseN\HexConverter.vb`
- `SAIF.Framework.BaseN\ConverterBase.vb`
- `SAIF.Framework.BaseN\ConverterException.vb`
