Вобщем там эта библиотека работает с однобайтовыми числами (старший бит является битом знака), двухбайтовыми числами (старший бит - знак, а предпоследний бит по старшинству - бит переполнения, причём байты в памяти располагаются в порядке "big endian") и трёхбайтовыми числами с плавающей точкой, составленными из байта экспоненты и 2-байтовой мантиссы (как описано до этого) - интересно сами писали или цельнотянуто откуда то?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
3-байтовые числа с плавающей точкой в памяти располагаются так:
1й байт - экспонента: 1 бит знак, 7 битов - само число (представляет числа от -127 до +127);
2й байт - старший байт мантиссы: 1 бит знак, 1 бит переполнения, оставшиеся 6 битов - старшие биты мантиссы;
3й байт - младший байт мантиссы: 8 битов, которые с 6 битами из предыдущего байта формируют 14 бит мантиссы (т.е. 16383 это самое большое число, среди чисел, которые можно отобразить без потери точности подряд).
Мантисса представляет собой биты после десятичной точки, т.е. 00 20 00 означает 0.5 (соответственно 01 20 00 это 1, а 00 00 00 это 0)
P.S. Получается, что самое маленькое число (по абсолютному значению и неравное нулю), которое можно отобразить в этой системе, это FF 00 01 = (1/16384)*2^(-127) = 3.587324068671532e-43, а самое большое - 7F 2F FF = 16383/16384*2^127 = 1.7013079886675216e+38 (правда документация пишет про 0.5867e-38 и 0.1704e+39 соответственно - второе похоже, а вот первое - не очень)
P.P.S. Возможно в документации речь идёт о нормализованном представлении, когда старший бит мантиссы всегда 1 - тогда самым маленьким числом будет FF 20 00 = 0.5*2^(-127) = 2.938735877055719e-39 (что примерно в 2 раза меньше того, что задокументировано)
Я тут за главного - если что шлите мыло на me собака shaos точка net