Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
25.09.2019, 12:53
|
|
Частый гость
Регистрация: 04.08.2019
Сообщений: 20
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 2 сообщении(ях)
|
арифметические операции с плавающей точкой
Препод в универе дал какое то сумасшедшее задание:
Нужно составить алгоритмы для сложения, вычитания, умножения и деления чисел с плавающей точкой в прямых модифицированных кодах.
В его представлении:
мантиса состоит из 2 знаковых бит, и 14 бит числа
порядок так же состоит из 2-х знаковых бит и 14 бит числа.
На кой ляд порядку иметь знак, я так и не понял.
Но мозг у меня начал пухнуть уже на сложении, на том моменте, что во время выравнивания порядков надо как то определять отрицательные или положительные порядки вообще, и в зависимости от этого уже выравнивание как то поразному должно происходить.
Плюс в процессе выравнивания может возникнуть переполнение порядков и это тоже надо как то отслеживать.
Я бы не стал заморачиваться особо, но вся проблема в том что потом по этому алгоритму надо будет составить программу для МПК К584 в допотопной программе, где ассемблер на русском языке и команды нельзя добавлять никак иначе кроме как мышкой.
В общем кто может помочь хоть как то с этими алгоритмами?
|
|
|
|
25.09.2019, 13:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: арифметические операции с плавающей точкой
Для начала нужно вспонить школьный курс математики. Отрицательный порядок - числа в диапазоне 0..1. У микрочипа есть (был) application notes с реализацией арифметики с плавающей точкой на PIC16.
upd: http://ww1.microchip.com/downloads/e...otes/00575.pdf что-то типа этого
__________________
misterdi<@>i.ua
Последний раз редактировалось MisterDi; 25.09.2019 в 13:39.
|
|
|
|
25.09.2019, 14:37
|
|
Частый гость
Регистрация: 04.08.2019
Сообщений: 20
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 2 сообщении(ях)
|
Re: арифметические операции с плавающей точкой
Ну в общем и целом то я понимаю что это для предстваления чисел от 0 до 1, Проблема в том что все алгоритмы которые я находил в интернете, игнорируют это. Тоесть там просто вычитают порядок первого числа из порядка второго и все.
Я не понял как тогда можно будет определить куда сдвигать мантису если порядок первого числа отрицательный а второй положитльеный, или наоборот, первый положительный а второй отрицательный, или вообще оба отрицательные. Что делать с возможным переполнением, после вычитания одного порядка из другого. Не получается все это в голове соединить как бы.
Я думал что знак полученный в результате вычитания порядков автоматически даст ответ - в какую сторону надо сдвигать мантису, и видимо я ошибался.
|
|
|
|
25.09.2019, 18:27
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
|
Re: арифметические операции с плавающей точкой
Вначале надо ознакомиться со стандартом записи числа с плавающей точкой. http://www.softelectro.ru/ieee754.html
Попутно узнаем, что бывают нормализованные и денормализванные числа с плав.точкой.
Ну и затем гуглим арифметические операции. Вообще, информации - туева куча. Надо только читать. Это долго, но если уж надо, то надо.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:46.
|
|