11073 Medical SFLOAT Utility

IEEE 11073 SFLOAT Converter

Encode numeric measurements into the 16-bit IEEE 11073 SFLOAT format or decode raw SFLOAT hexadecimal values into signed mantissa, decimal exponent and represented measurement value. Special NaN, NRes, infinity and reserved patterns are detected separately.

✓ 16-Bit SFLOAT ✓ Base-10 Exponent ✓ Signed Mantissa ✓ Bluetooth Bytes ✓ Special Values
SF
Encode / Decode SFLOAT
● Ready
Examples: 114, 36.4, 98.6, 0.125, -12.5.
Auto favors the decimal resolution implied by the entered value, then finds the closest valid representation if that exponent cannot be used.
Hexadecimal, decimal, binary or two hexadecimal bytes can be entered.
Bluetooth characteristic data is commonly encountered as little-endian bytes.
IEEE 11073 SFLOAT: bits 15–12 contain a signed 4-bit base-10 exponent and bits 11–0 contain a signed 12-bit mantissa. For ordinary numeric values, Value = Mantissa × 10^Exponent. This is not IEEE 754 binary floating point.
IEEE 11073 SFLOAT Result Calculated
Encoded SFLOAT
Represented Value
16-Bit Hex
Mantissa
Exponent
10^Exponent
Little-Endian Bytes
Big-Endian Bytes
Classification
Encoding Error
Exponent Field
Mantissa Field
Width 16 bits / 2 bytes
16-Bit SFLOAT Layout
Exponent [15:12]
Mantissa [11:0]
Field Bits Raw Signed / Decoded Meaning
SFLOAT Calculation Breakdown

What Is IEEE 11073 SFLOAT?

IEEE 11073 SFLOAT is a compact 16-bit decimal floating-point representation used in personal-health-device and Bluetooth health-data contexts. It is different from IEEE 754 Binary16 or Float32 because its scale is a power of ten rather than a power of two.

The 16 bits are divided into a four-bit signed exponent and a twelve-bit signed mantissa. Both fields use two’s-complement representation. :contentReference[oaicite:1]{index=1}

IEEE 11073 SFLOAT Formula

Value = Mantissa × 10^Exponent Mantissa: 12-bit signed two's complement Exponent: 4-bit signed two's complement Exponent range: -8 to +7

The exponent is decimal. An exponent of −1 means the mantissa is multiplied by 0.1, while an exponent of +2 means it is multiplied by 100.

16-Bit SFLOAT Bit Layout

15 12 11 0 +--------------+----------------------------------+ | Exponent | Mantissa | +--------------+----------------------------------+ 4 bits 12 bits

The raw 16-bit value can therefore be assembled as:

SFLOAT = ((Exponent & 0x0F) << 12) | (Mantissa & 0x0FFF)

SFLOAT Mantissa Range

The twelve-bit two’s-complement mantissa has a raw signed range from −2048 through +2047. Some exponent-zero mantissa patterns are reserved for special values rather than ordinary numbers. :contentReference[oaicite:2]{index=2}

12-bit signed range: -2048 through +2047

SFLOAT Exponent Range

The four-bit exponent is signed using two’s complement.

Binary Signed Exponent 0000 0 0001 +1 ... 0111 +7 1000 -8 ... 1111 -1

Example: Encode 114

The Bluetooth SIG’s IEEE 11073 transcoding example represents a systolic blood pressure value of 114 with exponent zero and mantissa 114. :contentReference[oaicite:3]{index=3}

Value = 114 Mantissa = 114 Exponent = 0 114 × 10^0 = 114 Mantissa Hex: 0x072 SFLOAT: 0x0072

Example: Encode 36.4

Value: 36.4 Choose: Mantissa = 364 Exponent = -1 364 × 10^-1 = 36.4 Exponent -1: 4-bit two's complement = 1111 Mantissa 364: 0x16C SFLOAT: 0xF16C

Decode SFLOAT 0xF16C

Raw SFLOAT: 0xF16C Exponent field: 0xF = -1 Mantissa field: 0x16C = 364 Value: 364 × 10^-1 = 36.4

IEEE 11073 SFLOAT Special Values

Five exponent-zero representations have assigned non-numeric meanings. The Bluetooth GATT specification lists the following medfloat16/SFLOAT patterns. :contentReference[oaicite:4]{index=4}

Raw SFLOAT Meaning
0x07FE Positive Infinity
0x07FF NaN — Not a Number
0x0800 NRes — Not at this Resolution
0x0801 Reserved for Future Use
0x0802 Negative Infinity

What Does NRes Mean?

NRes means Not at this Resolution. It is a defined special SFLOAT value rather than an ordinary numeric measurement. Its 16-bit value is 0x0800. :contentReference[oaicite:5]{index=5}

0x0800 → NRes → Not at this Resolution

SFLOAT Is Not IEEE 754 Half Precision

The name SFLOAT can be misleading if it is assumed to mean IEEE 754 half precision. IEEE 11073 SFLOAT uses a decimal exponent and signed integer mantissa, while IEEE 754 Binary16 uses a binary exponent, sign bit and fraction field.

IEEE 11073 SFLOAT: M × 10^E IEEE 754 Binary16: sign × binary significand × 2^E

Bluetooth SFLOAT Byte Order

A 16-bit SFLOAT value may be displayed as one hexadecimal word, while a raw Bluetooth characteristic is encountered as individual octets. This calculator shows both big-endian visual byte order and little-endian byte order so packet data can be interpreted without reversing bytes manually.

SFLOAT Word: 0xF16C Big-endian byte display: F1 6C Little-endian bytes: 6C F1

Why Decimal Resolution Matters

One purpose of this encoding is to retain meaningful measurement resolution. For example, 36.4 can naturally be encoded as mantissa 364 with exponent −1, which represents one decimal place of resolution.

36.4 M = 364 E = -1 Resolution: 10^-1 = 0.1

The calculator’s automatic encoder therefore considers the number of decimal places entered by the user before falling back to another valid exponent when necessary.

SFLOAT Encoding Error

Not every arbitrary real number can be represented exactly using an integer 12-bit mantissa and an exponent limited to −8 through +7. When an exact representation is unavailable, the encoder finds the closest available ordinary SFLOAT value and reports the numerical encoding error.

Encoding Error = Represented Value - Input Value
The encoder never uses one of the five reserved special bit patterns as an ordinary numeric value.

Negative SFLOAT Values

Negative measurements are represented using a negative two’s-complement mantissa, a negative exponent, or both as mathematically required.

Value: -12.5 One representation: Mantissa = -125 Exponent = -1 -125 × 10^-1 = -12.5

IEEE 11073 SFLOAT Converter FAQs

How many bits is IEEE 11073 SFLOAT?
SFLOAT is 16 bits or two octets.
How many bits are used for the mantissa?
The mantissa occupies 12 bits and is interpreted as a signed two’s-complement integer.
How many bits are used for the exponent?
The exponent occupies four bits and is also interpreted as a signed two’s-complement integer.
What is the SFLOAT exponent range?
The signed four-bit exponent ranges from −8 through +7.
What base does SFLOAT use?
IEEE 11073 SFLOAT uses base 10, so the represented number is Mantissa × 10^Exponent.
What does 0x0072 decode to?
It contains exponent 0 and mantissa 114, so it represents the value 114.
What does 0x07FF mean?
0x07FF is the defined SFLOAT NaN value.
What does 0x0800 mean?
0x0800 represents NRes, meaning Not at this Resolution.
What is positive infinity in SFLOAT?
Positive infinity uses the raw value 0x07FE.
What is negative infinity in SFLOAT?
Negative infinity uses the raw value 0x0802.
What does 0x0801 mean?
It is reserved for future use and should not be interpreted as an ordinary numeric measurement.
Is IEEE 11073 SFLOAT the same as IEEE 754 Float16?
No. IEEE 11073 SFLOAT uses a signed decimal exponent and signed integer mantissa. IEEE 754 Binary16 uses a different binary floating-point layout.
Can SFLOAT encode negative numbers?
Yes. The twelve-bit mantissa and four-bit exponent are both signed two’s-complement fields.
Can every decimal number be represented exactly?
No. The mantissa must fit in 12 signed bits and the exponent is restricted to −8 through +7, so some values require rounding or cannot be represented within the finite SFLOAT range.

Encode and Decode IEEE 11073 SFLOAT Values

Convert health-device measurements between decimal values and exact 16-bit SFLOAT representations while inspecting signed mantissa, decimal exponent, special-value codes and byte order.

Scroll to Top