Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
56_T5V.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
651.78 Кб
Скачать

Способы кодирования чисел

АЛУ микропроцессора можно выполнить только 2 операции: сложение и инвертирование. В этом случае вычитание заменяется сложением по определенным правилам с использованием специальных кодов.

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

Различают 3 вида специальных кодов:

1. Прямой [х]пр

2. Обратный [х]обр

3. Дополнительный [х]доп

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

Положительные числа от 0000 0000 до 0111 1111 (от 0 до +127)

Отрицательные числа от 1000 0000 до 1111 1111 (от 0 до -128)

Для положительных чисел.

Само число, прямой, обратный и дополнительный коды этого числа совпадают друг с другом и равны самому числу. [х] = [х]пр = [х]обр = [х]доп

Например: число 5 = 0000 0101 (в двоичном виде)

[х]пр =0000 0101 – прямой код числа

[х]обр =0000 0101- обратный код числа

[х]доп = 0000 0101 – дополнительный код числа

Для отрицательных чисел

[х]пр – то же самое число, только в старшем разряде ставится единица;

[х]обр – единица в старшем разряде и инверсия числа;

[х]доп = [х]обр + 1.

Например: число -5 = - 0000 0101 (в двоичном виде)

[х]пр = 1000 0101 – прямой код числа (то же самое число и единица в старшем

разряде);

[х]обр = 1111 1010- обратный код числа ([х]пр и инверсия числа);

+0000 0001- прибавив 1 в младшем разряде получим [х]доп

[х]доп =1111 1011 – дополнительный код числа ([х]обр + 1);

К примеру: 4 – 2 = ?

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

Для вычитания необходимо получить дополнительные коды чисел:

число 4 (000 0100 В); число - 2 (–0000 0100 В);

[4]пр = 0000 0100 [-2]пр = 1000 0010

[4]обр =0000 0100 [-2]обр = 1111 1101

[4]доп =0000 0100 [-2]доп =1111 1110

[4]доп + [-2]доп = 0000 0100

+1111 1110

0000 0010 – результат в дополнительном коде

Так как в старшем разряде результата стоит 0 это значит, что результат положительный, следовательно дополнительный код числа равен самому числу. Таким образом, результат равен 0000 0010, то есть числу +2.

К примеру: 5 – 7 = ?

Для вычитания необходимо получить дополнительные коды чисел:

число 5 (000 0101 В) число -7 (- 000 0111 В);

[5]пр = 0000 0101 [-7]пр. = 1000 0111

[5]обр= 0000 0101 [-7]обр = 1111 1000

[5]доп =0000 0101 [-7]доп =1111 1001

Складываем дополнительные коды чисел

[5]доп + [-7]доп = 0000 0101

+1111 1001

1111 1110 – результат в дополнительном коде.

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

1111 1110 (результат сложения чисел в дополнительных кодах).

0000 0001 (инверсия результата)

+ 0000 0001 (прибавление 1 в младшем разряде)

0000 0010 (двоичный код числа 2).

Следовательно 5-7 = -2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]