Переполнение разрядной сетки
В ЭВМ количество разрядов, используемых для представления чисел, ограничено. Поэтому при сложении двух чисел с одинаковыми знаками их сумма может оказаться больше по модулю, чем максимальное число, которое может быть записано при заданном количестве разрядов и результат сложения окажется неверным. Такое явление называется переполнением разрядной сетки.
Пример 6. Сложить два числа А = + 1101,1 и В = + 1011,0 (n=4, m=1) в обратном коде.
Решение. [A]обр = 0.1101,1
В этом примере 1 переноса из старшего разряда попадает в знаковый разряд ( с отрицательным весом) и, следовательно, в результате сложения двух положительных чисел получается отрицательное число.
При сложении отрицательных чисел в обратном или дополнительном кодах переполнение разрядной сетки наступает в том случае, если отсутствует 1 переноса в разряд с отрицательным весом и результат оказывается положительным.
Пример 7. Сложить два числа А = — 1011 и В= — 1101 (n=4, m=0) в дополнительном коде.
Решение: [A]доп = 1.0101
Для обнаружения переполнения разрядной сетки используют следующие способы:
1. Сравнивают знаки слагаемых со знаком суммы. Сигнал переполнения вырабатывается тогда, когда знаки слагаемых одинаковы и не совпадают со знаком суммы.
2. Второй способ основан на применении модифицированных кодов. Модификация кодов заключается во введении дополнительного разряда, который располагается перед знаковым. Этот разряд часто называют разрядом переполнения. Иногда говорят, что модифицированные коды содержат два знаковых разряда. Положительные числа имеют в знаковых разрядах два нуля, отрицательные – две единицы. При использовании модифицированных обратного и дополнительного кодов признаком переполнения разрядной сетки является наличие в знаковых разрядах различных цифр 01 или 10.
Пример 8. Сложить числа А1= +1011 и В1= +1101, А2= -1100 и В2= -1101 (n=4, m=0) соответственно в модифицированных дополнительном и обратном кодах.
В обоих примерах произошло переполнение разрядной сетки.
При несовпадении знаковых разрядов в модифицированных кодах вырабатывается сигнал переполнения разрядной сетки.
Порядок выполнения работы
Содержанием работы является: 2 схемы одноразрядных двоичных сумматоров, схема 8-ми разрядного двоичного сумматора параллельного действия, построение схем с использованием программы«ЕВЕМА-2» и контроль правильности их работы.
Работу рекомендуется выполнять в следующей последовательности:
— по таблице истинности одноразрядного двоичного сумматора получить выражения для сигналов суммы и переноса в булевом базисе;
— набрать на компьютере комбинационную схему одноразрядного двоичного сумматора;
— набрать на компьютере комбинационную схему 8-ми разрядного двоичного сумматора;
— выполнить сложение заданных чисел в обратном и дополнительном кодах;
— проверить правильность работы схемы, задавая на ее входах значения чисел в обратном и дополнительном кодах.
Статьи к прочтению:
Разрядная сетка с фиксированной запятой
Похожие статьи:
РЕЖИМ ПОСТРОЕНИЯ ПО СЕТКЕ Когда Вы работаете с чертежом, иногда бывает удобно включить изображение сетки на экране и назначить привязку к ее узлам. При…
КУРСОВАЯ РАБОТА По дисциплине «Операционные системы» Исполнитель: ст. гр. 4301 Галиева Д.М. Руководитель: Шалагин С. В. Оценка_________________…
Сложение чисел в МПТ: Методическое пособие к лабораторной работе , страница 2
Пример 2. Пусть m =7. Тогда |Xмакс| =0.1111111. Подсуммирование единицы в младший разряд приводит к результату: 0,1111111 + 0.0000001 =1,0000000. Сумма равна единице, которая выходит за формат дробных чисел.
В формуле (3): m – номер младшего разряда машинного слова (Рис.5)
Таким образом, переполнение разрядной сетки при сложении дробных чисел описывается условиями
Целые числа.
Максимальное по модулю положительное или отрицательное целое число содержит во всех значащих разрядах единицы.
С учетом (5), переполнение разрядной сетки при сложении целых чисел описывается условиями
Из соотношений (3) и (6) вытекают следующие определения.
Переполнение разрядной сетки – случай при сложении, когда модуль суммы превышает максимальное число, представимое в заданной разрядной сетке;
Переполнение возможно только при сложении чисел одного знака, так как модуль суммы в этом случае всегда превышает модули ненулевых слагаемых;
Переполнение невозможно при сложении чисел разных знаков. Модуль суммы в этом случае меньше модуля максимального и представимого в заданной разрядной сетке слагаемого;
Переполнение, возникающее при сложении двух отрицательных операндов наз. отрицательным переполнением, а переполнение, возникающее при сложении двух положительных операндов – положительным.
3. Сложение чисел в простых кодах
Следует различать процедуры сложения в простых и модифицированных кодах.
В простых кодах для кодирования знака используется один старший разряд кода.
В модифицированных кодах для кодирования знака используется два разряда кода.
Ниже, в этом разделе рассматриваются особенности сложения в простых дополнительных и обратных кодах, а затем в разделе 4 сложение в модифицированных кодах.
3.1. Процедура сложения чисел в простых дополнительных кодах (ПДК)
Процедура1. Основные правила сложения в простых дополнительных кодах:
1. положительные операнды участвуют в сложении в прямых кодах;
2. отрицательные операнды должны быть преобразованы в дополнительные коды и, в таком виде – суммироваться;
3. знаковый разряд слагаемых участвует в операции наравне с числовыми разрядами;
4. перенос из знакового разряда, который может возникнуть при сложении, должен быть игнорирован (отброшен);
5. при суммировании операндов одного знака возможно отрицательное или положительное переполнение;
6. при сложении может формироваться либо положительная, либо отрицательная сумма. При этом:
6.1 если сумма – положительное число, а переполнение отсутствует, то она содержит “0” в знаковом разряде и представлена в прямом коде.
6.2 если сумма – отрицательна, то результат суммирования содержит единицу в знаковом разряде, а сумма представлена в дополнительном коде;
7. при использовании дополнительных кодов возможен случай т.н. особого переполнения (особый случай переполнения).
Далее проводится анализ различных случаев сложения (Процедура 1) в дополнительных простых кодах чисел, представленных в форматах дробных и целых чисел. Таблица 1, строится исходя из того, что на результаты сложения влияют
1. знаки слагаемых;
2. величины модулей слагаемых и их соотношение.
Учитывается то, что при сложении возможно переполнение результата, определяются признаки таких ситуаций. Выделены по перечисленным признакам девять случаев, которые могут иметь место при сложении. В последующий разделах каждый случай проанализирован с точки зрения возможности его возникновения, особенностей получаемых результатов и последствий.
3.1.1. Сложение дробных и целых положительных чисел без переполнения. (Случай 1)
3.1.1.1 Дробные числа.Пусть складываются два положительных слагаемых представленных в форме дробных чисел. Пусть также (A+B)<1.
Очевидно, что сумма в этом случае – число, представимое в заданной разрядной сетке т.е. переполнение в этом случае возникать не должно. Слагаемые представляются в прямых кодах, а сумма также должна быть сформирована прямом коде и иметь признаки положительного числа.
Переполнение разрядной сетки машины
При сложении чисел одинакового знака может возникнуть переполнение разрядной сетки. Признаком переполнения является отличие знака реззельтата от знаков слагаемых. Пусть, например, требуется сложить два числа:
Складывали два отрицательных числа, а ответ — положительный. Чтобы не было переполнения, необходимо расширить разрядную сетку. Запишем числа А и В в пяти битах:
Теперь ответ верный. В вычислителях для контроля переполнения следят за переносом в знаковый разряд и из него. Если оба переноса имеют место или оба отсутствуют, то переполнения нет. Если есть хотя бы один из переносов, то имеет место переполнение разрядной сетки.
В некоторых машинах для контроля переполнения используют гак называемые модифицированные коды: прямой, обратный, дополнительный. В этих кодах под знак числа отводится по два бита. После сложения эти знаковые биты складывают между собой по модулю два. Если результат сложения равен нулю, то нет переполнения, если результат сложения равен единице, то переполнение есть. Проверим это правило на примере обратного модифицированного кода. Сложим два числа:
Таким образом, модифицированные коды удобны для использования, хотя и занимают на один бит больше памяти.
Контроль информации
тель никогда об этом не узнает, поэтому в первых вычислительных машинах всегда выполнялся двойной счет. В современных машинах существуют специальные системы контроля, которые позволяют определить наличие ошибки и даже автоматически ее исправить. Вообще система контроля — это совокупность средств и методов, обеспечивающих проверку правильности работы устройства, обнаружение и автоматическое исправление ошибок.
Простейшим методом контроля является проверка на четность (проверка паритета). Исходное число дополняют битом четности, в который заносят нуль или единицу с тем, чтобы общее количество единиц было четным:
Переполнение разрядной сетки
Переполнением разрядной сетки называется ситуация, при которой результат требует на один разряд больше для своего представления, чем исходные операнды и результат не умещается в разрядную сетку.
В ЭВМ такая ситуация отслеживается блоком прерывания и в случае переполнения программа снимается с обработки.
Признаки переполнения(способы определения переполнения):
1) По наличию и отсутствию переноса в знаковый и из знакового разряда:
переполнение возникает в том случае, если возникает единица переноса в знаковый разряд и отсутствует единица переноса из знакового разряда. Либо имеется единица переноса из знакового
разряда и отсутствует единица переноса в знаковый разряд.
Переполнение отсутствует, если существуют единицы переноса и в знаковый разряд и из знакового разряда или обе единицы переноса отсутствуют.
0.101 +5 прямой код 0.100 +4 прямой код
1.010 -5 обратный код 1.011 -4 обратный код
0.100 +4 прямой код
Имеется один перенос в знаковый разряд, перенос из знакового разряда отсутствует.
1.011 -4 обратный код
Имеется один перенос из знакового разряда, перенос в знаковый разряд отсутствует.
2) Модифицированное кодирование:
При модифицированном кодировании под знак числа отводится два или более разрядов.
Комбинация 00 соответствует положительному числу.11 – отрицательное число.
00.100 +4 прямой модифицированный код
Комбинация 01 в знаковом разряде соответствует переполнению разрядной сетки.
11.011 -4 обратный модифицированный код
Комбинация 10 в знаковом разряде соответствует переполнению разрядной сетки.
Пример для дополнительного модифицированного кода:
11.100 -4 дополнительный модифицированный код
00.001 +1 прямой код
В знаковых разрядах результата комбинация 00.Из этого следует, что переполнение разрядной сетки отсутствует, результат положительный .
11.011 -5 дополнительный модифицированный код
В знаковых разрядах результата комбинация 11.Из этого следует, что переполнение разрядной сетки отсутствует и результат отрицательный ,представлен в дополнительном коде.
11.001 -1 прямой код
11.100 — 4 дополнительный модифицированный код
В знаковых разрядах результата комбинация 10,что соответствует переполнению разрядной сетки.
Формы представления чисел в ЭВМ.
Любая информация(числа, команды и т.д.) представляются в ЭВМ в виде двоичных кодов фиксированной или переменной длины. Отдельные элементы двоичного кода, имеющие значение 0 или 1, называют разрядами или битами. В ЭВМ слова часто разбивают на части, называемые слогами или байтами. В современных ЭВМ широко используется байт, содержащий 8 бит(разрядов).
Двоичный разряд представляется в ЭВМ некоторым техническим устройством, например триггером, двум различным состояниям которого приписывают значения 0 и 1. Набор соответствующего количества таких устройств служит для представления многоразрядного двоичного числа(слова).