сложение чисел в обратном и дополнительном кодах

Сложение чисел в обратном и дополнительном кодах

Арифметические операции на сумматорах прямого, обратного и дополнительного кода

Все операции в ЭВМ выполняют над числами, представленными специальными машинными кодами. Их использование позволяет обрабатывать знаковые разряды чисел так же, как и значащие разряды, а также заменять операцию вычитания операцией сложения.

Каждому двоичному числу можно поставить в соответствие несколько видов кодов.

Различают следующие коды двоичных чисел: прямой (П), обратный (ОК) и дополнительный (ДК).

Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака (0 или 1) перед его старшим числовым разрядом.

Прямой код двоичного числа образуется по следующему алгоритму:

1) определить данное двоичное число: либо целое (порядок), либо правильная дробь (мантисса);

2) если это дробь, то цифры после запятой можно рассматривать как целое число;

3) если это целое и положительное двоичное число, то вместе с добавлением нуля в старший разряд число превращается в код.

Для отрицательного двоичного числа перед ним ставится единица.

число Y 2 = +0,11011012 → код числа Y пр = 01101101.

Подчеркиванием выделяют знаковые разряды.

Обратный код двоичного числа образуется по следующему алгоритму:

1) обратный код положительных чисел совпадает с их прямым кодом;

2) обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются инверсными, т. е. нули заменяются единицами, а единицы нулями.

Свое название обратный код получил потому, что коды цифр отрицательного числа заменены инверсными.

Наиболее важные свойства обратного кода чисел:

— сложение положительного числа С с его отрицательным значением в обратном коде дает так называемую машинную единицу МЕок = 1|1111, состоящую из единиц в знаковом и в значащих разрядах числа;

— нуль в обратном коде имеет двоякое значение.

Он может быть как положительным числом 0|0000, так и отрицательным 1|1111.

Двойственное представление нуля явилось причиной того, что в современных ЭВМ все числа представляются не обратным, а дополнительным кодом.

Обратный код положительного двоичного числа совпадает с прямым кодом, а для отрицательного числа нужно, исключая знаковый разряд, во всех остальных разрядах нули заменить единицами и наоборот.

Дополнительный код положительных чисел совпадает с их прямым кодом. Дополнительный код отрицательного числа представляет собой результат суммирования обратного кода числа с единицей младшего разряда (2 0 – для целых чисел, 2 –k – для дробных).

Основные свойства дополнительного кода:

· сложение дополнительных кодов положительного числа С с его отрицательным значением дает так называемую машинную единицу дополнительного кода:

т. е. число 10 (два) в знаковых разрядах числа;

Дополнительный код положительного числа совпадает с его прямым кодом. Дополнительный код отрицательного числа образуется путем прибавления единицы к обратному коду.

Арифметические действия в машинных кодах

Сложение, а также вычитание чисел в обратном или дополнительном кодах выполняют с использованием обычного правила арифметического сложения многоразрядных чисел.

Это правило распространяется и на знаковые разряды чисел.

Различие обратного и дополнительного кодов связано с последующими действиями с единицей переноса из старшего разряда, изображающего знак числа.

При сложении чисел в обратном коде эту единицу надо прибавить к младшему разряду результата, а в дополнительном коде единица переноса из старшего разряда игнорируется, так как дополнительный код из обратного получается как раз прибавлением единицы.

Сложение и вычитание машинных чисел

Операция вычитания приводится к операции сложения путем преобразования чисел в обратный или дополнительный код согласно таблице.

Сложение (вычитание) машинных чисел

Скобки в представленных выражениях указывают на замену операции вычитания операцией сложения с обратным или дополнительным кодом соответствующего числа.

Сложение двоичных чисел осуществляется последовательно, поразрядно в соответствии с таблицей.

При выполнении сложения цифр необходимо соблюдать следующий алгоритм:

1) слагаемые должны иметь одинаковое число разрядов.

Для выравнивания разрядной сетки слагаемых можно дописывать незначащие нули слева к целой части числа и незначащие нули справа к дробной части числа;

2) знаковые разряды участвуют в сложении так же, как и значащие;

3) необходимые преобразования кодов производят с изменением знаков чисел. Приписанные незначащие нули изменяют свое значение при преобразованиях по общему правилу;

4) при преобразовании единицы переноса из старшего знакового разряда, в случае использования ОК, эта единица складывается с младшим числовым разрядом.

При использовании ДК единица переноса теряется. Знак результата формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые.

1. Сложить два числа: А10 = 7, В10 = 16.

Исходные числа имеют различную разрядность, необходимо провести выравнивание разрядной сетки:

Сложение в обратном или дополнительном коде дает один и тот же результат:

2. Сложить два числа: А10 = +16, В10 = –7 в ОК и ДК.

По таблице необходимо преобразование А +(–В), в которой второй член преобразуется с учетом знака:

При сложении чисел в ОК и ДК были получены переносы в знаковый разряд и из знакового разряда.

В случае ОК перенос из знакового разряда требует дополнительного прибавления единицы младшего разряда.

В случае ДК этот перенос игнорируется.

Пример сложения чисел +18 и –7 приведен в таблице.

Источник

Обратный и дополнительный коды двоичных чисел

сложение чисел в обратном и дополнительном кодахсложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодахсложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодахсложение чисел в обратном и дополнительном кодах

Пример перевода
x1=10101-[x1]пр=010101
x2=-11101-[x2]пр=111101
x3=0,101-[x3]пр=0,101
x4=-0,111-[x4]пр=1,111
2) Обратный код числа, используется для выполнения арифметических операций вычитания, умножения, деления, через сложение. Обратный код положительного числа совпадает с его прямым кодом, обратный код отрицательного числа формируется по правилам: в знаковом разряде записывается “1”; цифровые значения меняются на противоположные.

3) Дополнительный код числа, имеет такое же назначение, как и обратный код числа. Формируется по следующим правилам: положительные числа в дополнительном коде выглядят также как и в обратном и в прямом коде, т.е. не изменяются. Отрицательные числа кодируются следующим образом: к обратному коду отрицательного числа (к младшему разряду) добавляется 1, по правилу двоичной арифметики.

Пример перевода
x1=10101-[x1]доп=010101
x2=-11101-[x2]обр=100010+1-[x2]доп=100011
x3=0,101-[x3]доп=0,101
x4=-0,111-[x4]обр=1,000+1-[x4]доп=1,001
Для выявления ошибок при выполнении арифметических операций используются также модифицированные коды: модифицированный прямой; модифицированный обратный; модифицированный дополнительный, для которых под код знака числа отводится два разряда, т.е. “+”=00; ”-”=11. Если в результате выполнения операции в знаковом разряде появляется комбинация 10 или 01 то для машины это признак ошибки, если 00 или 11 то результат верный.

Источник

Особенности сложения чисел в обратном и дополнительном кодах.

При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается.

При сложении чисел в обратном коде возникающая единица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.

Если результат арифметических действий является кодом отрицательного числа, необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах кроме знакового на противоположные. Дополнительный код преобразуется в прямой также, как и обратный, с последующим прибавлением единицы к младшему разряду.

Сложить двоичные числа X и Y в обратном и дополнительном кодах.

1) Сложим числа, пользуясь правилами двоичной арифметики:

сложение чисел в обратном и дополнительном кодах

2) Сложим числа, используя коды:

Прямой кодСложение в обратном кодеСложение в дополнительном коде
сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах

Так как результат сложения является кодом положительного числа (знак 0), то (X+Y)обр=(X+Y)доп=(X+Y)пр.

1) Сложим числа, пользуясь правилами двоичной арифметики:

сложение чисел в обратном и дополнительном кодах

2) Сложим числа, используя коды:

Прямой кодСложение в обратном кодеСложение в дополнительном коде
сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах

Так как сумма является кодом отрицательного числа (знак 1), то необходимо перевести результаты в прямой код:

(X+Y)обр=1,1110100 сложение чисел в обратном и дополнительном кодах(X+Y)пр=1,0001011;

— из дополнительного кода

(X+Y)доп=1,1110101 сложение чисел в обратном и дополнительном кодах(X+Y)пр=1,0001010+0,0000001=1,0001011.

Дата добавления: 2015-08-01 ; просмотров: 2920 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Источник

Сложение чисел в обратном и дополнительном кодах

В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение обратных или дополнительных кодов уменьшаемого и вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

Сложение обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:

1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:

Получен правильный результат.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

4. А и В отрицательные. Например:

При сложении может возникнуть ситуация, когда старшие разряды результата операции не помещаются в отведенной для него области памяти. Такая ситуация называется переполнением разрядной сетки формата числа. Для обнаружения переполнения и оповещения о возникшей ошибке в компьютере используются специальные средства. Ниже приведены два возможных случая переполнения.

Сложение дополнительных кодов. Здесь также имеют место рассмотренные выше шесть случаев:

1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

Получен правильный результат. Единицу переноса из знакового разряда компьютер отбрасывает.

4. А и В отрицательные. Например:

Получен правильный результат в дополнительном коде. Единицу переноса из знакового разряда компьютер отбрасывает.

Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

Деление для компьютера является трудной операцией. Обычно оно реализуется путем многократного прибавления к делимому дополнительного кода делителя.

Источник

Особенности сложения чисел в обратном и дополнительном кодах.

При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается.

При сложении чисел в обратном коде возникающая единица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.

Если результат арифметических действий является кодом отрицательного числа, необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах кроме знакового на противоположные. Дополнительный код преобразуется в прямой также, как и обратный, с последующим прибавлением единицы к младшему разряду.

Сложить двоичные числа X и Y в обратном и дополнительном кодах.

1) Сложим числа, пользуясь правилами двоичной арифметики:

сложение чисел в обратном и дополнительном кодах

2) Сложим числа, используя коды:

Прямой кодСложение в обратном кодеСложение в дополнительном коде
сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах

Так как результат сложения является кодом положительного числа (знак 0), то (X+Y)обр=(X+Y)доп=(X+Y)пр.

1) Сложим числа, пользуясь правилами двоичной арифметики:

сложение чисел в обратном и дополнительном кодах

2) Сложим числа, используя коды:

Прямой кодСложение в обратном кодеСложение в дополнительном коде
сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах сложение чисел в обратном и дополнительном кодах
115102421020710185101581023910-7010-2410-9510-6510-4710-8910

0011010111010110011001001001010101111000110010000111011101000111010001101111011100000101010110101000000110101110100001111111000111110111011011011010110110101110101110100110000010011101000010113X=-11010; Y=1001111X=-11101; Y=-100110X=1110100; Y=-101101X=-10110; Y=-111011X=1111011; Y=-1001010X=-11011; Y=-101014X=-11101; Y=-100110X=-10110; Y=-111011X=-10110; Y=-111011X=1111011; Y=-1001010X=1110100; Y=-101101X=-11010; Y=1001111

Порядок выполнения работы:

1. Запишите дополнительный код числа, интерпретируя его как восьмибитовое целое со знаком

2. Запишите в десятичной системе счисления целое число, если дан его дополнительный код

3. Выполнить операции +,- чисел в обратных кодах

4. Выполнить операции +,- чисел в дополнительных кодах

1. Дайте определение понятию «дополнительный код»

2. Дайте определение понятию «обратный код»

3. Как реализовать операцию вычитания, с помощью операции сложения?

Практическая работа №2

Тема: Выполнение арифметических операций в естественной и нормальной форме

Цель работы: Научиться производить операции сложения и вычитания в дополнительных и обратных кодах

1. Калабеков Б.А. Цифровые устройства и микропроцессорные системы. – М.: Горячая линия, 2005г

2. Калиш Г.Г. Основы вычислительной техники. – М. Высш. шк., 2000 г.

Краткие теоретические сведения:

Числа с фиксированной точкой.

Запись числа с фиксированной точкой обычно имеет знаковый и цифровой разряды. Фиксированная точка означает, что на этапе конструирования ЭВМ было определено, сколько и какие разряды машинного слова отведены под изображение целой и дробной частей числа. Пример.
Как частный случай числа с фиксированной точкой может быть рассмотрена запись целого числа (в этом случае все разряды, кроме знакового, используются для записи целой части).

Пример.
Ячейка с записью целого числа.

сложение чисел в обратном и дополнительном кодах

Числа с плавающей точкой.

Для представления чисел с плавающей точкой (ЧПТ) используется полулогарифмическая форма записи числа:

Положение точки определяется значением порядка p. С изменением порядка точка перемещается (плавает) влево или вправо.
Пример.

12510=12.5*10 1 =1.25*10 2 =0.125*10 3 =0.0125*10 4 =.

Для установления однозначности при записи чисел принята нормализованная форма записи числа. Мантисса нормализованного числа может изменяться в диапазоне: 1/q ≤ | m | 10

сложение чисел в обратном и дополнительном кодах

Максимальным числом представимым в формате слова будет A=(0.1111. 1·10 1111111 )2 сложение чисел в обратном и дополнительном кодах(1·2 127 )10.

сложение чисел в обратном и дополнительном кодах

сложение чисел в обратном и дополнительном кодах

Дата добавления: 2019-09-13 ; просмотров: 271 ; Мы поможем в написании вашей работы!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *