Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Прямой, обратный и дополнительный коды



Читайте также:
  1. Выбор дополнительный и вспомогательных устройств
  2. Для физической деятельности не нужен дополнительный белок
  3. Дополнительный
  4. Дополнительный
  5. Дополнительный вопрос.
  6. Дополнительный вопрос.
  7. Дополнительный материал

 

При вычислении ЭВМ оперируют как с положительными, так и с отрицательными числами. При этом вычитание можно заменить сложением, воспользовавшись дополнением отрицательного числа. Дополнением числа 12510 будет число 87510, числа 12516 будет число ЕDВ16, для числа 11012 – число 112. Эти дополнения получают следующим образом:

_100010 _100016 _100002

125 10 125 16 1101 2

87510 EDB16 112

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

Прямой код совпадает с записью самого числа. В знаковом разряде записывается 0 (знак +) или 1 (знак -), а затем записывается само число.

Например, числа: А1=+0,1010 и А2= 0,1010 в прямом коде записываются в виде: [А1]пр=0 1010 и [А2]пр=1 1010.

Пример: В1 = +0,101001 [В1]пр.= 0 101001;

В2 = 0,11101 [В2]пр.= 1 11101.

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

Например, числа А1=+0,1010 и А2= 0,1010 в обратном коде записываются в виде [А1]обр.=0 1010 и [А2]обр.=1 0101.

Пример: В1 = +0,101100 [В1]обр.= 0 101110;

В2 = 0,010101 [В2]обр.= 1 101010.

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

Например: числа А1=+0,1010 и А2= 0,1010 в дополнительном коде записываются в виде: [А1]доп.=0 1010 и [А2]доп.=1 0110.

Пример: В1 = +0,00110 [В1]доп.= 0 00110;

В2 = 0,001101 [В2]доп.= 1 110011.

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

Например, для числа А= 0,1010 получим [А]мобр.=11 0101, [А]мдоп.=11 0110.

Переход от обратного и дополнительного кодов к прямому осуществляется аналогично переходу от прямого кода к обратному и дополнительному.

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

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

1) а=0,1010>0 [а]обр.=0 1010

b=0,0010>0 [в]обр. =0 0010

[х]обр.=0 1100

х= 0,1100

2) а= 0,1010<0 [а]обр.=1 0101

b= 0,1100>0 [в]обр. =0 1100

10 0001

[х]обр.=0 0010

х= 0,0010

3) а=0,1010>0 [а]обр.= 0 1010

b= 0,0010<0 [в]обр. = 1 1101

10 0111

[х]обр.= 0 1000

х= 0,1000

4) a= – 0,1010<0 [a]обр.=1 0101

b= – 0,0010<0 [b]обр. =1 1101

11 0010

[x]обр.=1 0011

x= – 0,1100

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

Пример:

a= – 0,1010<0 [a]доп.=1 0110

b= – 0,0010<0 [b]доп. =1 1110

11 0100

[х]доп.=1 0100

[х]обр.=1 0011

х= – 0,1100

Например, имеется число А1 = 0,101112 и А2 = 0,0112. Нужно выполнить действие А1-А2

_0,10111

0,01100

0,01011

Заменим операцию вычитания сложением. Для этого произведём кодирование: получим обратный и дополнительный коды для чисел А1 и А2.

[A1]обр.= 0 10111 [A2]обр.= 1 10011

[A1]доп.= 0 10111 [A2]доп.= 1 10100

Выполним операцию сложения полученных кодов

+ [A1]обр.= 0 10111

[A2]обр .= 1 10011

10 01010

[A1+A2]обр.= 0 01011

A1+A2 = 0,01011

 

+[A1]доп.= 0 10111

[A2]доп .= 1 10100

10 01011

[A1+A2]доп . = 0 01011

A1+A2 = 0,01011

 


Дата добавления: 2015-07-11; просмотров: 105 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.009 сек.)