Разделение 24-битного значения на пару 12-битных полей выглядит как правильный подход. Для двух 12-битных полей используемый здесь формат с плавающей запятой, начиная с крайнего левого бита:
один знаковый бит (0 для положительного, 1 для отрицательного)
пять битов экспоненты, давая значение без знака, которое смещено на 15 (поэтому мы должны вычесть 15 из значения без знака этого поля, чтобы получить фактическую экспоненту)
шесть битов значимости и значение без знака
Абсолютное значение числа с плавающей запятой, выраженное в этом формате, будет иметь вид:
significand * ( 2 ^ exponent ) / ( 2 ^ 6 )
Для приведенных примеров имеем:
0011 0110 0011 =>
sign bit = 0, positive
exponent field = 01101, which is decimal 13, so actual exponent = 13 - 15 = -2
significand = 100011, which is decimal 35
value = positive 35 * ( 2 ^ -2 ) / ( 2 ^ 6 ) = 0.13672
1001 0011 0101 =>
sign bit = 1, negative
exponent field = 00100, which is decimal 4, so actual exponent = 4 - 15 = -11
significand = 110101, which is decimal 53
value = negative 53 * ( 2 ^ -11 ) / ( 2 ^ 6 ) = -0.0004044
Вы можете подтвердить комментарий о точности этого формата, повторив эти вычисления со значениями и значениями, которые были увеличены на единицу.