Скачиваний:
71
Добавлен:
11.02.2015
Размер:
683.07 Кб
Скачать

3. Способы представления чисел (прямой, обратный и дополнительный коды)

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

Для представления чисел со знаком в ЭВМ применяют прямой, обратный и дополнительный коды.

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

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

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

1) прямой код;

2) обратный код;

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

Все три способа используют самый левый (старший) разряд битового набора длины n для кодирования знака числа: знак «плюс» кодируется нулем, а «минус» – единицей. Остальные n–1 разрядов (называемые мантиссой или цифровой частью) используются для представления абсолютной величины числа.

Запись числа αnαn–1αiα1α0α–1αm , где αn∈{0,1} – знак числа, при всех прочих равных условиях имеет разные количественные эквиваленты в зависимости от того в каком коде, прямом, обратном или дополнительном, оно записано.

3.1. Положительные целые числа

Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково – цифровая часть содержит двоичную запись числа (значащие разряды αn–1÷αm кодируют количественный эквивалент числа), в знаковом разряде содержится 0. Например, для n = 8:

110=12

12710=11111112

Диапазон представимых чисел: 0…2n–1–1.

3.2. Отрицательные целые числа

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

Значащие разряды αn–1÷αm отрицательного числа N кодируют:

• в прямом коде – модуль количественного эквивалента |N|;

• в обратном коде – дополнение модуля количественного эквивалента до веса знакового разряда, уменьшенного на вес младшего разряда, т.е. величину (qnqm)–|N|;

• в дополнительном коде – дополнение модуля количественного эквивалента до веса знакового разряда qn, т.е. величину qn–|N|.

Например, число –137 в десятичной q = 10 и в двоичной q = 2 системах счислениях в разных кодах записывают так:

1|137пр 1|862обр 1|863доп

1|10001001пр 1|01110110обр 1|01110111доп

Формулы для вычисления количественного эквивалента кода

• прямого

• дополнительного

• обратного

Прямой, обратный и дополнительный коды обладают следующими свойствами:

1. В прямом и обратном кодах число ноль можно записать двумя способами. В прямом коде: 0|010 или 1|010; 0|00...02 или 1|00...02.

В обратном коде: 0|010 или 1|910; 0|00...02 или 1|11...12.

2. В прямом и обратном кодах диапазоны представления положительных и отрицательных чисел одинаковы и симметричны относительно нуля. Модуль минимального числа равен максимальному числу.

3. Сложение положительного числа с его отрицательным значением в обратном коде дает так называемую машинную единицу (МЕобр) 1|910 (1|11...12), состоящую из единиц в знаковом и значащих разрядах числа. Значение отрицательного нуля совпадает с МЕобр.

4. В дополнительном коде число ноль можно записать только одним способом как 0|010 (0|00...02) – машинный ноль. Отрицательный ноль в дополнительном коде не существует.

5. В дополнительном коде диапазоны представления положительных и отрицательных чисел не симметричны относительно нуля. Модуль минимального числа превышает максимальное число на величину равную весу младшего разряда qm. Код минимального числа в дополнительном коде 1|00...0 при любом натуральном q, а его количественный эквивалент – qn.

6. В дополнительном коде сумма положительного и равного ему по абсолютному значению отрицательного числа равна машинному нулю.

7. Минимальное число представимое в дополнительном коде (–qn) нельзя записать в прямом или в обратном коде, сохранив разрядность кодов.