реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
krisher
сообщение Apr 13 2015, 13:16
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 24-12-07
Из: Васильевский Остров
Пользователь №: 33 611



Здравствуйте, коллеги.

Никак не могу сообразить алгоритм определения переполнения при сложении нескольких (более 2х) чисел в дополнительном коде.
Подскажите, пожалуйста.
Go to the top of the page
 
+Quote Post
des00
сообщение Apr 13 2015, 13:37
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



каждое сложение двух чисел одной разрядности = +1 бит. дальше тривиально.


--------------------
Go to the top of the page
 
+Quote Post
krisher
сообщение Apr 13 2015, 13:44
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 24-12-07
Из: Васильевский Остров
Пользователь №: 33 611



это понятно. вопрос в том, как потом определить случилось ли переполнение или просто перенос
Go to the top of the page
 
+Quote Post
Lerk
сообщение Apr 13 2015, 13:58
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 339
Регистрация: 5-05-11
Пользователь №: 64 797



Если есть перенос из суммы в знак, но нету переноса из знака: переполнение в отрицательную сторону. Ну и обратно.
Go to the top of the page
 
+Quote Post
krisher
сообщение Apr 13 2015, 13:59
Сообщение #5





Группа: Участник
Сообщений: 11
Регистрация: 24-12-07
Из: Васильевский Остров
Пользователь №: 33 611



а как это посчитать для n чисел?
Go to the top of the page
 
+Quote Post
krux
сообщение Apr 13 2015, 16:20
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



ищите по ключевым "схема ускоренного переноса" или "сarry-lookahead adder"


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
V_G
сообщение Apr 14 2015, 04:49
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Не определен тип процессора.
На универсальных процессорах задачу придется решать программно.
А DSP должны иметь специальный флаг переполнения (у ADSP-21XX это AV,MV). При этом если AV=1 и нет переноса, то переполнение в положительную сторону, есть перенос - в отрицательную. Там же реализован и режим насыщения (автоматическая замена результата максимальным по модулю числом при возникновении переполнения).
Go to the top of the page
 
+Quote Post
krisher
сообщение Apr 14 2015, 10:05
Сообщение #8





Группа: Участник
Сообщений: 11
Регистрация: 24-12-07
Из: Васильевский Остров
Пользователь №: 33 611



спасибо всем, вроде разобрался.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Apr 22 2015, 08:06
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(V_G @ Apr 14 2015, 08:49) *
Не определен тип процессора.
На универсальных процессорах задачу придется решать программно.
А DSP должны иметь специальный флаг переполнения (у ADSP-21XX это AV,MV). При этом если AV=1 и нет переноса, то переполнение в положительную сторону, есть перенос - в отрицательную. Там же реализован и режим насыщения (автоматическая замена результата максимальным по модулю числом при возникновении переполнения).

На самом деле большинство универсальных процессоров аппаратно определяет возникновение переполнения.
Go to the top of the page
 
+Quote Post
Krys
сообщение Jun 4 2015, 10:45
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(des00 @ Apr 13 2015, 20:37) *
каждое сложение двух чисел одной разрядности = +1 бит. дальше тривиально.
Точнее так для общего случая: +ceil(log2(N_add)) бит. Т.е. если заранее известно, что будут складываться 4 числа, то разрядность надо увеличить не на 4 бита, а всего на 2.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 19:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016