Используется для записи целых чисел, при этом знак числа записывают в зону младшего байта. Это так называемый десятичный распакованный формат — формат с зоной. Он приведен на рис. 2.9.
Рис. 2.9. Десятичный распакованный формат.
Очевидно, что память используется нерационально, так как хранить одинаковую зону для каждой цифры неразумно, поэтому используют десятичный упакованный формат. Он приведен на рис. 2.10.
Рис. 2.10. Десятичный упакованный формат.
Здесь код знака числа содержится в младшей тетраде младшего байта. Так записываются положительные и отрицательные числа.
Память используется более рационально, но это только десятичные числа.
Двоичный формат.
Используется для записи чисел с фиксированной и с плавающей запятой. Формат с фиксированной запятой для целых чисел приведен на рис. 2.11.
Рис. 2.11. Двоичный формат для целых чисел
Знак кодируется как обычно: 0 — плюс, 1 — минус. Число записывается в двоичной системе счисления и каждый байт представляют парой шестнадцатеричных цифр. Максимальное положительное число, представимое в этом формате:
или
Отрицательные числа в этом формате представляют в дополнительном коде. Например, числа +50 и -50 (десятичные) будут представлены в следующем виде:
Числа +10 и -10 (десятичные) записываются так:
Какое наибольшее (по модулю) отрицательное число можно записать в этом формате? Для положительных чисел это 2″-1, а для отрицательных — 2″ . Возьмем, например, п = 3. Тогда 0 111 (или 23 — 1 = +7). Дополнительный же код для числа -7 = -111 равен 1 001, т. е. дополнение не равно нулю и можно еще уменьшить отрицательное число с тем, чтобы дополнение стало равно нулю. Значит, в трех битах можно записать число минус 8, а его дополнительный код равен 1 000.
Поэтому в формате четыре байта представимые целые числа лежат в диапазоне от -231 до +231 — 1, т.с. диапазон несимметричный:
В двоичном формате с плавающей запятой положительные числа записываются в нормализованном виде (см. параграф 2.4) в прямом коде, а отрицательные числа (мантиссы) записываются в дополнительном коде. Характеристики чисел всегда положительны. Например, десятичные числа +50 и -50 в формате с плавающей запятой будут записаны гак: А = ±50 = ±3216 = ±0011 00102 = = ±0,110 010 2+0110.
Характеристика числа X = 128 + q = 126 + 6 = 13410 = 8616 = = 10 000 1102.
Запись числа +50 показана на рис. 2.12, запись числа -50 — на рис. 2.13.
Рис. 2.12. Число +50 в формате с плавающей занятой и скрытой
единицей мантиссы
Рис. 2.13. Число -50 в формате с плавающей запятой и скрытой единицей мантиссы
Аналогично можно записать любое другое число.
Контрольные вопросы
- 1. Что такое система счисления?
- 2. Каковы особенности арифметических операций в различных системах счисления?
- 3. Что такое машинные коды?
- 4. Что такое алфавитно-цифровое кодирование?