Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ 2.pdf
Скачиваний:
12
Добавлен:
09.04.2015
Размер:
743 Кб
Скачать
☆

Целые числа со знаком

•Для хранения целых чисел со знаком отводится один, два или три байта, причем старший (левый) разряд

отводится под знак числа

•Если число положительное, то в знаковый разряд

записывается 0, если отрицательное, то 1

•Такое представление называется прямым кодом числа

•Пример: Прямой код числа -5 в однобайтовом формате:

-510 = 1 0000 101

• Диапазоны изменения целых чисел со знаком:

1

байт:

- 27 …+27 - 1

-128

10

…127

 

2

байта:

- 215 …+215 -1

 

 

10

 

- 32768

…+32767

10

4

байта:

- 231…+231–1

-2 147

 

10

 

483 648 …2 147 483 647

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

•Для того, чтобы реализовать в ЭВМ операцию

вычитания отрицательные числа преобразуют в

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

•Дополнительный код n-разрядного отрицательного числа Аq, равен qn - |A|

•Пример из десятичной арифметики: X=8410, Y= -3210. Вычислить Z = X + Y = 5210

•Найдем дополнение числа Y до 100:

Y1 = 102 - | Y | = 68

(дополнительный код в десятичной системе)

•Вычислим Z1 = X+Y1 = 84 + 68 = 152

•Отбросим единицу в старшем разряде: Z=52

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

Дополнительный код отрицательного числа:

•Отбросить знаковый разряд (т.е. взять модуль)

•Все разряды инвертировать

•К результату прибавить 1

Обратное преобразование в прямой код:

•Из результата вычесть 1

•Все разряды инвертировать

ПРИМЕР

•Дополнительный код отрицательное число -7

•Прямой код числа 7 = | -7| : 0 000 0111

•

Инвертируем :

1 111 1000

•

Добавим к результату 1:

1 111 1001

•Дополнительный код отрицательного числа -7

равен 1 111 1001

Вычислим 510 – 710 = -210

Для этого к прямому коду числа 5 надо прибавить дополнительный код числа -7

Результат перевести в прямой код