Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Способы представления информации_.doc
Скачиваний:
6
Добавлен:
10.11.2019
Размер:
163.33 Кб
Скачать

1.5. Сложение по модулю два

Достаточно часто, при обработке информации в микропроцессорных системах, кроме обычных сложения и вычитания, необходимо выполнить операцию «сложение по модулю два» - XOR (исключающее ИЛИ). В булевой алгебре логики этому выражению соответствует уравнение:

Y = AB+AB

Функционально сложение по модулю два выполняет операцию побитного суммирования без переноса, которому соответствуют правила: 0=0+0, 0=1+1, 1=1+0

Выполнить операцию сложения по модулю два для чисел 11 1100b и 10 1110b:

11 1100b

10 1110b

-----------------

01 0010b

1.6. Дополнительный код

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

Формат чисел в дополнительном коде предполагает, что старший разряд имеет значение знакового. Если он равен нулю, то число положительное, если единице – отрицательное. Таким образом, в восьми разрядах можно записать 128 положительных чисел (от 0 до 127) и 128 отрицательных (от –1 до –128).

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

  1. Записать двоичное число, дополнив нулями недостающие старшие разряды.

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

  3. Прибавить к числу в обратном коде единицу в младшем разряде.

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

Представить число –20 в дополнительном коде:

  1. 0001 0100

1 1

2) 1110 1011

3) + 1

------------------

1110 1100 = - 20

Определить десятичный эквивалент числа 1110 0101, представленного в дополнительном коде:

1) 1110 0101

- 1

-------------------

1110 0100

2) 0001 1011

3) 0001 1011 = - 27

Вычислите значение выражения 32-20, используя дополнительный код. Для проверки результата переведите полученное число в десятичную систему счисления.

Значение выражения будет вычислено как сумма 32+(-20), а полученный при переносе старший (девятый) разряд отброшен.

1 1

0010 0000 32

+1110 1100 -20

------------------- -------

1 0000 1100 = 0000 1100 = 12 12

Таблица 2 - Примеры представления чисел в дополнительном коде

Десятичное число

Дополнительный код

Десятичное число

Дополнительный код

-128

1000 0000

0

0000 0000

-127

1000 0001

1

0000 0001

-126

1000 0010

2

0000 0010

-125

1000 0011

3

0000 0011

-3

1111 1101

125

0111 1101

-2

1111 1110

126

0111 1110

-1

1111 1111

127

0111 1111