Прямой код
Прямой n-разрядный двоичный код состоит из знакового разряда и
n-1 разрядов для записи модуля числа. В качестве знакового разряда используется старший разряд.
an-1 |
an-2 |
... |
a0 |
знак модуль числа
Знак “плюс” кодируется как 0, а знак “минус” – как 1.
Определим диапазон чисел, представимых в прямом n-разрядном двоичном коде. Введем следующие обозначения: A+max – максимальное положительное число, A-min - минимальное отрицательное число:
A+max = 2n-1 – 1; A-min = -(2n-1-1)
Пример: Получить прямой 5-ти разрядный код числа A[10] = - 6.Определить диапазон чисел для этой разрядной сетки.
1.| A[10] | = 6 Þ | A[2] | = 0110 (на запись модуля выделено 4 разряда) 2.Знаковый разряд = 1
3.(А[2])пр =
Определим диапазон чисел:
A+max = 24 – 1 = 15 A-max = -(24 – 1) = -15
Пример: Получить прямой 8-ми разрядный код числа A[16] = 3С. Опре- делить диапазон чисел для этой разрядной сетки.
1.| A[16] | = 3С Þ |
A[2] | = 0111100 (на запись модуля выделено 7
разрядов) 2.Знаковый разряд = 0
3.(А[2])пр =
Определим диапазон чисел:
A+max = 27 – 1 = 127 A-max = -(27 – 1) = -127
Прямой код для кодирования целых чисел со знаком в ЭВМ практически не применяется и используется как составная часть более сложных ко- дов.
Недостатки:
1. Сложение и вычитание чисел в прямом коде выполняется по прави- лам алгебры:
(С)пр = (А)пр + (В)пр
(С)пр = (А)пр - (В)пр ,
поэтому процессор должен иметь два разных устройства: сумматор и вычитатель.
2. Знаковый разряд обрабатывается отдельно от остальных по особым правилам.
3. Неоднозначность кодировки нуля:
+0 при n=5
-0 при n=5
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.