Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

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






Пример 1. ¾¾¾¾ ¾¾¾¾ ¾¾¾¾






10 c/c 16 c/c 2 c/c

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0

- 2 8 9 3 - A 5 4 C - 1 0 1 0

¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾

8 1 0 7 5 A B 4 0 1 1 0

 

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

Для 10 c/c максимальная цифра - это 9, для 16 c/c - F, для 2 c/c - 1. Отметим, что для 2 c/c первый этап указанного преобразования сводится к инвертированию числа, т.е. замене нулей на единицы, а единиц - на нули.

Для числа -3104 в формате short int имеем F3E0. Для числа -58 = -003A получим FFC6.

 

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

 

Пример 2. Пусть нам требуется выполнить в 10 c/c операцию

 

6 5 8 6 1

- 4 8 2 7 3

¾ ¾ ¾ ¾ ¾

1 7 5 8 8

 

Вместо вычитания числа 48273 выполним сложение с его дополнительным кодом (51727):

 

6 5 8 6 1

+ 5 1 7 2 7

¾ ¾ ¾ ¾ ¾

| 1| 1 7 5 8 8

 

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

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

 

Максимальное значение числа формата short int:

= 0111 1111 1111 1111 = 1000 0000 0000 0000 - 1 = - 1 = 32767

Минимальное значение определяется кодом 1000 0000 0000 0000, которому соответствует число -32768.

 

Рассмотрим формирование отрицательного минимума для формата short int.

8000 = 1000 0000 0000 00002

1111 1111 1111 1111 - доп.код числа -1

+ 1000 0000 0000 0001 - доп.код числа -111 1111 1111 1111 = - ( - 1)

¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾

1 1000 0000 0000 0000

Единица переноса из старших складываемых разрядов отбрасывается.

Результат: 8000 = - ( - 1) - 1 = - = - 32768.

 

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

 

Пример 3 (для 16 с/с):

исходное число - 5B9538B6

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

дополнительный код дополнительного кода - 5B9538B6

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал