Машинные коды

Содержание

Слайд 2

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

Прямой код Прямой код двоичного числа образуется из абсолютного значения этого числа
кода знака (0 или 1) перед его старшим числовым разрядом.
Пример.
А10 = +10; А2 = +1010; [А2]п = 0|1010
В10 = –15; В2 = –1111; [В2]п = 1|1111

Слайд 3

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

Обратный код Обратный код двоичного числа образуется по следующему правилу. Обратный код
чисел совпадает с их прямым кодом. Обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются на инверсные, т.е. нули заменяются единицами, а единицы нулями.
Пример.
А10 = +10; А2 = +1010; [А2]ок = [А2]п = 0|1010
В10 = –15; В2 = –1111; [В2]ок = 1|0000

Слайд 4

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

Свое название обратный код получил потому, что коды цифр отрицательного числа заменены
на инверсные. Наиболее важные свойства обратного кода чисел:
сложение положительного числа С с его отрицательным значением в обратном коде дает т.н. машинную единицу МЕок=1|11…11, состоящую из единиц в знаковом и в значащих разрядах числа;
нуль в обратном коде имеет двоякое значение. Он может быть как положительным числом – 0|00…00, так и отрицательным 1|11…11. Значение отрицательного числа совпадает с МЕок. Двойственное представление 0 явилось причиной того, что в современных ЭВМ все числа представляются не обратным, а дополнительным кодом.

Слайд 5

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

Дополнительный код Дополнительный код положительных чисел совпадает с их прямым кодом. Дополнительный
отрицательного числа представляет собой результат суммирования обратного кода числа с единицей младшего разряда (20 – для целых чисел, 2-л – для дробных)
Пример.
А10 = +10; А2 = +1010; [А2]дк = [А2]ок = [А2]п = 0|1010
В10 = –15; В2 = –1111; [В2]дк = [В2]ок + 20 = 1|0000+1 = 1|0001

Слайд 6

Основные свойства дополнительного кода:
• сложение дополнительных кодов положительного числа С с его

Основные свойства дополнительного кода: • сложение дополнительных кодов положительного числа С с
отрицательным значением дает т.н. машинную единицу дополнительного кода:
МЕдк=МЕок + 20 = 10|00…00,
т.е. число 10 (два) в знаковых разрядах числа;
• дополнительный код называется так потому, что представление отрицательных чисел является дополнением прямого кода чисел до машинной единицы
МЕдк.

Слайд 7

Модифицированные обратные и дополнительные коды
Модифицированные обратные и дополнительные коды двоичных чисел отличаются

Модифицированные обратные и дополнительные коды Модифицированные обратные и дополнительные коды двоичных чисел
соответственно от обратных и дополнительных кодов удвоением значений знаковых разрядов. Знак «+» в этих кодах кодируется двумя нулевыми знаковыми разрядами, а знак «–» – двумя единичными разрядами.
Пример.
А10 = +10; А2 = +1010; [А2]дк = [А2]ок = [А2]п = 0|1010
[А2]мок = [А2]мдк = 00|1010
В10 = –15; В2 = –1111; [В2]дк= [В2]ок+20 = 1|0000+1 = 1|0001
[В2]мок= [В2]мдк= 11:0001

Слайд 8

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

Целью введения модифицированных кодов являются фиксация и обнаружение случаев получения неправильного результата,
когда значение результата превышает максимально возможный результат в отведенной разрядной сетке машины. В этом случае перенос из значащего разряда может исказить значение младшего знакового разряда. Значение знаковых разрядов «01» свидетельствует о положительном переполнении разрядной сетки, а «10» - об отрицательном переполнении. В настоящее время практически во всех компьютерах роль сдвоенных разрядов для фиксации переполнения разрядной сетки играют переносы, идущие в знаковый и из знакового разряда.

Слайд 9

Арифметические действия в машинных кодах.
Сложение (вычитание). Операция вычитания приводится к операции сложения

Арифметические действия в машинных кодах. Сложение (вычитание). Операция вычитания приводится к операции
путем преобразования чисел в обратный или дополнительный код согласно таблице.

Слайд 11

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

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

Слайд 12

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

1. Слагаемые должны иметь одинаковое число разрядов. Для выравнивания разрядной сетки слагаемых
можно дописывать незначащие нули слева к целой части числа и незначащие нули справа к дробной части числа.
Знаковые разряды участвуют в сложении так же, как и значащие.
2. Необходимые преобразования кодов производятся с изменением знаков чисел. Приписанные незначащие нули изменяют свое значение при преобразованиях по общему правилу.
3. При преобразовании единицы переноса из старшего знакового разряда, в случае использования ОК, эта единица складывается с младшим числовым разрядом.
4. При использовании ДК единица переноса теряется. Знак результата формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые.

Слайд 13

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

Пример 1. Сложить два числа: А10 = 7, В10 = 16. А2
+111 = +0111; В2 = +10000.
Исходные числа имеют различную разрядность, необходимо провести выравнивание разрядной сетки:
[A2]п = [A2]ок = [A2]дк = 0|00111; [В2]п = [В2]ок = [В2]дк = 0|10000.
Сложение в обратном или дополнительном коде дает один и тот же результат:
0|00111
+0|10000
----------
С2 = 0|10111
С10 = +23

Слайд 14

Пример 2. Сложить два числа: А10 = +16, В10 = -7 в

Пример 2. Сложить два числа: А10 = +16, В10 = -7 в
ОК и ДК.
По таблице необходимо преобразование А+(-В), в которой второй член преобразуется с учетом знака
[A2]п = [A2]ок = [A2]дк = 0|10000;
[В2]п = 1|111 = 1|00111; [В2]ок = 1|11000; [В2]дк = 1|11001

Слайд 15

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

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