Цифровые устройства и микропроцессоры: Учебное пособие, страница 20

                         

                    Рисунок 2.12 – Признаки символов в байте кода ДКОИ

Старшая тетрада  (зона), носит служебный характер и указывает тип символа. Код непосредственно символа  заносится в младшую тетраду. В других кодах (КОИ – 8 и ASCII) кодировка зоны  отличается  от  приведённой на рисунке 2.12, но  смысл  зоны сохраняется – признак символа.

Любая информация устройством ввода преобразуется в код и хранится в памяти машины  в виде слов:

              

                   Рисунок 2.13 – Формат слова  (четыре байта)

Размер слова может быть различным: 2 байта, 4 байта, 8 байт и др.

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

Десятичный формат. Используется для записи целых чисел при этом, знак числа записывают в зону младшего байта. Это, так  называемый, десятичный распакованный формат – формат с зоной. Он приведён на рисунке 2.14.

             

                     Рисунок 2.14 -  Десятичный распакованный формат

Очевидно, что память используется не рационально, так как хранить одинаковую зону для каждой  цифры не разумно, поэтому используют десятичный упакованный формат. Он приведён на рисунке 2.15.

          

                       Рисунок 2.15 - Десятичный упакованный формат

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

Двоичный формат. Используется  для записи чисел с фиксированной и с плавающей запятой. Формат с фиксированной запятой  для целых чисел приведен  на рисунке 2.16

            

                       Рисунок 2.16 -  Двоичный формат для целых чисел

Знак кодируется как обычно:  0 – плюс, 1 – минус. Число записывается в двоичной системе счисления и каждый байт представляют парой шестнадцатеричных цифр. Максимальное положительное число, представимое в этом формате:

                       0111 1111 ….1111     или

                          7 F  FF  FF  FF  ( 16 )  

Отрицательные числа в этом формате представляют в дополнительном коде. Так, например, числа  +50   и  -50 (десятичные) будут представлены в следующем виде:

                            00  00  00  32        ( +50 )

                            FF FF  FF CE        (- 50 )

Числа  +10  и – 10 (десятичные) записываются так:

                            00  00  00  0А        ( +10 )

                            FF  FF  FF F6         ( -10 )

Какое наибольшее (по модулю) отрицательное число можно записать в этом формате?   Для положительных чисел это  2 n – 1 , а для отрицательных  2 n. Возьмём, например, n = 3 . Тогда      0 111    (или  2 3 -1 = +7). Дополнительный же код для числа  - 7  =  - 111  равен   1 001, то есть дополнение не равно нулю и можно ещё уменьшить отрицательное число с тем, чтобы дополнение стало равно нулю. Значит, в трёх битах можно записать  число  минус 8,  а его дополнительный код равен  1 000.

Поэтому, в формате четыре байта, представимые целые числа, лежат в диапазоне от  – 2 31  до   + 2 31 -1, то есть  диапазон несимметричный

                            - 2147483648   N    + 2147483647

                             - 80 00 00 00   N    + 7F FF FF FF

В двоичном формате с плавающей запятой положительные числа записываются в нормализованном виде  (см. раздел  2.4) в прямом коде, а отрицательные числа (мантиссы) записываются в дополнительном коде. Характеристики чисел всегда положительны. Например, десятичные  числа  + 50  и  - 50  в  формате с плавающей запятой будут записаны  так:

 А =  50 =  32 16  =  0011  0010 2  =  0, 110010  2  + 0110

 Характеристика числа  Х = 128 +q =  126 + 6 = 134 10 = 86 16 = 1000 0110 2

Число + 50:

               

    Рисунок 2.17 - Число   +50  в формате с плавающей запятой и скрытой единицей мантиссы