|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22758 Location: Silicon Valley
|
Получил ещё один экземпляр с ПОЛНЫМ пакетом документации И там есть руководство программиста для библиотеки с плавающей точкой Надо её чтоли отсканировать и сдать вот сюда для комплекту: http://retropc.org/Elektronika_MS_2721_s_99.html
|
23 Mar 2018 08:13 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22758 Location: Silicon Valley
|
Вобщем там эта библиотека работает с однобайтовыми числами (старший бит является битом знака), двухбайтовыми числами (старший бит - знак, а предпоследний бит по старшинству - бит переполнения, причём байты в памяти располагаются в порядке "big endian") и трёхбайтовыми числами с плавающей точкой, составленными из байта экспоненты и 2-байтовой мантиссы (как описано до этого) - интересно сами писали или цельнотянуто откуда то?...
|
25 Mar 2018 23:14 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22758 Location: Silicon Valley
|
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 раза меньше того, что задокументировано)
|
26 Mar 2018 04:38 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22758 Location: Silicon Valley
|
Вот обложка и одна из страниц руководства:
|
13 Mar 2021 01:37 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22758 Location: Silicon Valley
|
Я смотрю скан книжки про плавающую точку уже есть у них: http://retropc.org/Elektronika_MS_2721_s_99.htmlСкачал дамп там, а то мои коробушки лежат в хранилище в Санта-Кларе...
|
13 Mar 2021 02:24 |
|
|
Who is online |
Users browsing this forum: No registered users and 2 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|