Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: признак переполнения при сложении нескольких чисел в доп. коде
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
krisher
Здравствуйте, коллеги.

Никак не могу сообразить алгоритм определения переполнения при сложении нескольких (более 2х) чисел в дополнительном коде.
Подскажите, пожалуйста.
des00
каждое сложение двух чисел одной разрядности = +1 бит. дальше тривиально.
krisher
это понятно. вопрос в том, как потом определить случилось ли переполнение или просто перенос
Lerk
Если есть перенос из суммы в знак, но нету переноса из знака: переполнение в отрицательную сторону. Ну и обратно.
krisher
а как это посчитать для n чисел?
krux
ищите по ключевым "схема ускоренного переноса" или "сarry-lookahead adder"
V_G
Не определен тип процессора.
На универсальных процессорах задачу придется решать программно.
А DSP должны иметь специальный флаг переполнения (у ADSP-21XX это AV,MV). При этом если AV=1 и нет переноса, то переполнение в положительную сторону, есть перенос - в отрицательную. Там же реализован и режим насыщения (автоматическая замена результата максимальным по модулю числом при возникновении переполнения).
krisher
спасибо всем, вроде разобрался.
_Bill
Цитата(V_G @ Apr 14 2015, 08:49) *
Не определен тип процессора.
На универсальных процессорах задачу придется решать программно.
А DSP должны иметь специальный флаг переполнения (у ADSP-21XX это AV,MV). При этом если AV=1 и нет переноса, то переполнение в положительную сторону, есть перенос - в отрицательную. Там же реализован и режим насыщения (автоматическая замена результата максимальным по модулю числом при возникновении переполнения).

На самом деле большинство универсальных процессоров аппаратно определяет возникновение переполнения.
Krys
Цитата(des00 @ Apr 13 2015, 20:37) *
каждое сложение двух чисел одной разрядности = +1 бит. дальше тривиально.
Точнее так для общего случая: +ceil(log2(N_add)) бит. Т.е. если заранее известно, что будут складываться 4 числа, то разрядность надо увеличить не на 4 бита, а всего на 2.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.