вероятно, неправильное место, чтобы спросить, но я постараюсь.
Я должен спроектировать схему, которая бы добавляла / вычитала число с плавающей точкой
Я пытался сделать это, используя числа со знаком в стандарте IEE 754.
Они довольно большие, поэтому я решил начать с чего-то меньшего, чтобы доказать концепцию.
Я нашел несколько алгоритмов в сети для выполнения сложения и вычитания положительных чисел.
Большинство выглядит так:
http://meseec.ce.rit.edu/eecc250-winter99/250-1-27-2000.pdf
,
Они не объясняют, что происходит со знаковым битом.
Теперь я очень смущен. Согласно тому, что я нашел в сети, нет разницы в исполнении:
A-B and A- (-B)
Может кто-нибудь помочь мне с ссылкой, где алгоритм подробно объясняется?
спасибо за все ответы
Я нашел это алгебраическое объяснение полезным http://howardhuang.us/teaching/cs231/08-Subtraction.pdf
В настоящее время моя схема выполняет A + B (без учета знакового бита) и A-B так же, как написал kfmfe04. Я делаю XORing B и добавляю 1, так что я получаю результат в 2C.
Во втором PDF-файле предлагается включить бит знака в операции add / sub. Я попробую это утром.
Проведя так много часов, тренируя свой мозг, я чувствую себя немного уставшим и не могу думать прямо. Теперь мне просто интересно, стоит ли мне изменить мою схему так, чтобы:
Переключатель кнопки добавления / подписки по-прежнему XOR B [a + (- b)], но также и перед этой частью я XOR мантисс с их знаком, чтобы преобразовать их в 2с.
Таким образом, я мог бы охватить случай вычитания отрицательных чисел (-A) - (- B).
Хотя звучит сложно.