krisher 0 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба Здравствуйте, коллеги. Никак не могу сообразить алгоритм определения переполнения при сложении нескольких (более 2х) чисел в дополнительном коде. Подскажите, пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба каждое сложение двух чисел одной разрядности = +1 бит. дальше тривиально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krisher 0 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба это понятно. вопрос в том, как потом определить случилось ли переполнение или просто перенос Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lerk 0 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба Если есть перенос из суммы в знак, но нету переноса из знака: переполнение в отрицательную сторону. Ну и обратно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krisher 0 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба а как это посчитать для n чисел? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 13 апреля, 2015 Опубликовано 13 апреля, 2015 · Жалоба ищите по ключевым "схема ускоренного переноса" или "сarry-lookahead adder" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 14 апреля, 2015 Опубликовано 14 апреля, 2015 · Жалоба Не определен тип процессора. На универсальных процессорах задачу придется решать программно. А DSP должны иметь специальный флаг переполнения (у ADSP-21XX это AV,MV). При этом если AV=1 и нет переноса, то переполнение в положительную сторону, есть перенос - в отрицательную. Там же реализован и режим насыщения (автоматическая замена результата максимальным по модулю числом при возникновении переполнения). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krisher 0 14 апреля, 2015 Опубликовано 14 апреля, 2015 · Жалоба спасибо всем, вроде разобрался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Bill 0 22 апреля, 2015 Опубликовано 22 апреля, 2015 · Жалоба Не определен тип процессора. На универсальных процессорах задачу придется решать программно. А DSP должны иметь специальный флаг переполнения (у ADSP-21XX это AV,MV). При этом если AV=1 и нет переноса, то переполнение в положительную сторону, есть перенос - в отрицательную. Там же реализован и режим насыщения (автоматическая замена результата максимальным по модулю числом при возникновении переполнения). На самом деле большинство универсальных процессоров аппаратно определяет возникновение переполнения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 4 июня, 2015 Опубликовано 4 июня, 2015 · Жалоба каждое сложение двух чисел одной разрядности = +1 бит. дальше тривиально.Точнее так для общего случая: +ceil(log2(N_add)) бит. Т.е. если заранее известно, что будут складываться 4 числа, то разрядность надо увеличить не на 4 бита, а всего на 2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться