Способы представления данных

Формы с плавающей и фиксированной точкой

Существует 2 способа предcтавления чисел: с плавающей и фиксированной точкой.

Представление числа в форме с фиксированной точкой.

Общий вид представления числа с фиксированной точкой:

Зн 2-1 ... 2-n

 

Зн 2-1 ... 2-15

< 2 байта, 16 разрядов >

Зн 2-1 ... 2-31

< 4 байта, 32 разрядa >

В общем случае фиксированная точка (естественная форма представления чисел) характеризуется значением m (m = соnst). В этом случае для всех чисел, с которыми оперирует машина, положение точки постоянно. Можно увидеть, что при m = 0 все числа, с которыми оперирует машина, меньше 1 и представлены в виде правильных дробей.

В формате с фиксированной точкой разрядная сетка имеет n + 1 разряд:

f3.gif (791 bytes)

+xmax+ = 0.111...1 - 2n

+xmin+ = 0.000...1 * 2n

0 T +x+ T 1 - 2n

При использовании чисел с фиксированной точкой может возникнуть переполнение.

Представление чисел в форме с плавающей точкой.

Такое представление числа соответствует нормальной форме записи:

¦ (x1p-1 + x2p-2 + ... + xnp-n)

Здесь p-n - мантисса, pm - порядок.

Пример:

133,21 = 102*1.3321, 102- порядок, 1.3321- мантисса.
1332.1 = 103*1.3321
0.13321 = 10-1*1.3321

При использовании формата с плавающей точкой пользуются понятием нормализованного представления чисел.

Нормализованным числом называется число, мантисса которого удовлетворяет следующим неравенствам:

f5.gif (565 bytes)

Пример:

0,00121 = 10-2*0.121
0.0010 = 2-2*0.101
101.10 = 23 *0.10110

Зн.п 2ln-2 ... 20 Зн.m 2-1 2lm
<       Код порядка       > <    Код мантиссы     >
<     Длина поля порядка          > <     Длина поля мантиссы     >

Kn - код порядка
Km - код мантиссы
ln - длина поля порядка
lm - длина поля мантиссы

Знак '-' кодируется единицей, знак '+' - нулем.

Диапазон представления чисел (максимальное число) зависит от того, как велики поля порядка и мантиссы.

Пример:

25*0.110101

0 101 0 110101

Основной операцией в ЭВМ является операция сложения. При вычислении суммы в ЭВМ возможны 2 случая: либо слагаемые имеют разные знаки, либо одинаковые.

Алгоритмы получения суммы 2-х чисел с общими знаками:

1-й алгоритм

  1. Сложить два числа
  2. Сумме присвоить знак одного из слагаемых

2-й алгоритм

  1. Сравнить знаки слагаемых. Если они одинаковы, то выполнить сложение по 1-му алгоритму.
  2. Сложить слагаемые по абсолютной величине, если знаки слагаемых разные.
  3. Если необходимо, переставить числа местами, чтобы вычитать из большего меньшее.
  4. Произвести вычитание.
  5. Результату присвоить знак большего слагаемого.

S = A + (-B)

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

Распространёнными формами представления чисел со знаками является их представление в прямом, обратном и дополнительном коде

Прямой код числа образуется кодированием знака числа нулём, если число положительно и единицей, если число отрицательно (для двоичной системы)

Для общего случая (q - 1) - если число отрицательно, и 0 - если число положительно. q - основание системы счисления.

Код знака записывается перед старшей цифрой числа и отделяется от неё точкой:

-1.01 = 1.101

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

Обратный код отрицательного числа образуется из прямого кода, заменой его цифр на их дополнения до величины q-1. Код знака сохраняется без изменения.

Пример :

+12310 = 0.123пр. = 0.123об.
-12310 = 9.123пр = 9.876об.
+3А7С0016 = 0.3А7С00пр = 0.3А7С00об.
-3А7С0016 = F.3А7С00пр = F.C583FFоб.
-1012 = 1.101пр = 1.010об.

Замена цифр их дополнениями для двоичной системы совпадает с операцией инверсии, то есть нули заменяются единицами, единицы - нулями. Знак принимает значение, равное единице.

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

Пример:

+23610 = 0.236пр.= 0.236об.= 0.236доп.
-23610 = 9.236пр.= 9.763об.= 9.764доп.
-1012 = 1.101пр.= 1.010об.= 1.011доп.
-3А7С16 = F.3А7Спр.= F.C583об.= F.C584доп.

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

Форматы чисел в ЭВМ

Рассмотрим представление формата в ЭВМ на примерах форматов, используемых в IBM 360/370 и ПЭВМ.

Как упоминалось ранее, в ЭВМ информация, представляемая с использованием множества двоичных разрядов, называется его разрядной сеткой. Количество этих разрядов определяет длину разрядной сетки. Для чисел заданного диапазона используется разрядная сетка с заранее определённой длиной и назначением разряда, что называется заданием числа в определённом формате. Задание диапазона предполагает выбор системы счисления, кода и разрядности чисел, что находит отражение в написании формата.

Кроме бита и байта, для указания длины формата используется слово, его производные - полуслово, двойное слово. Двойное слово и полуслово по-разному определяется для разных систем ЭВМ. Кроме того, используется понятие тетрада - 4 двоичных разряда, которыми может кодироваться, например, одна двоичная цифра.

Назначение разряда в формате структурирует разрядную сетку, то есть разбивает её на поля, объединяющие разряды сходного назначения. Например, разряды мантиссы или порядка. Форматы чисел в IBM 360/370 имеют длину полуслова, слова и двоичного слова, содержащие соответственно 2,4 и 8 байт.

Двоичные разряды в форматах формируются слева направо (начиная с нулевого разряда).

0

1

15

H Зн Разряды числа

0

1

31

F Зн Разряды числа

0

1

7

31

E Зн Характеристика Мантисса числа

0

1

7

63

D Зн Характеристика Мантисса числа

                   <        байт         >

<       байт      >

                                   <         байт      >

Z Зона Ст.цифра Зона Цифра ... Зона Цифра Знак Мл.цифра

                    <                        байт                       >

           <                  байт                     >

P Ст.цифра Цифра ... Мл.цифра Знак

Форматы H и F используются для представления двоичных чисел с фиксированной точкой, а E и D - с плавающей. Для представления десятичных чисел требуются форматы Z и P.

В формате H и F записывают целые двоичные числа, представленные в дополнительном коде и имеющие длину соответственно полуслова (короткий формат H) и слова (длинный формат F). Нулевой дволичный разряд является знаком. Формат H позволяет представить числа в диапазоне от -215 до 215-1, формат F - от -231 до 231-1. Форматы E и D служат для представления двоичных чисел с плавающей точкой и имеют длину соответственно слова и двойного слова. В нулевом разряде указывается код знака мантиссы (Зн). В семи следующих разрядах первого байта записывается характеристика (Х), представляющая собой порядок (П), в виде положительного числа . В последующих байтах записывается мантисса.

Форматы E и D описывают двоичные числа в двоично-кодированной шестнадцатеричной системе счисления. Порядок чисел изменяется от -64 до +63.

Характеристика (Х) изменяется от 0 до 127,

Х = Р + 64,

то есть смещает порядок в область положительных чисел.

Формат D за счёт большей длины, используемой для увеличения разрядности мантиссы, обеспечивает представление чисел с большей точностью.

Диапазон абсолютных значений чисел в форматах E и D составляет величины от 16-64 до 1663 , что эквивалентно пределам от 10-77 до 1076.

Для представления чисел в формате E и D необходимо перевести число в 16-ричную систему счисления, представить его в форме с плавающей точкой, определить характеристику и занести код знак мантиссы, характеристику и мантиссу в соответствующие поля формата.

Пример:

30010 = 12С16 = 0.12С16*163 = 4312С000E = 43.12С00000000000D
-8010 = -5016 = -0.5016*162 = С2500000E = С250000000000000D

Для положительных чисел при переводе в формат Е впереди пишется 4, для отрицательных - С.

Зн 26 25 24 23 22 21 20
0 1 0 0 0 0 0 1

Для положительного числа:

0 100 0001

Для отрицательного числа:

1 100 0001

210 = 216 = 0.216*161 = 41200000Е = 4120000000000000D

0 100 0001 0010 0000 0000 ... 0000

Форматы Z и P (зонный и упакованный) используют двоично-десятичную систему исчисления с весами 8421. Каждая десятичная цифра кодируется тетрадой.

Пример:

1510 = 0001 01012-10

Знак числа: если число положительное, то оно кодируется символами A, C, E, F , если же число отрицательное- то символами B и D.

Формат Z (зонный формат)используется при вводе и выводе. Для каждой цифры отводится 1 байт, причём правая тетрада кодирует цифру, а левая зона принимает значение F, если кодируется цифра, и этим отличает цифру от кодов других символов в других информациях. Крайний правый байт, кодирующий младшую цифру, на месте зоны имеет код знака.

Формат Р называется упакованным и используется при выполнении операций над цифрами. Получается из зонного путём удаления зон и перенесения кода знака на место справа от тетрады, кодирующей младшую цифру. Формат имеет целое количество байт и пре необходимости дополняется слева от младшей цифры нулевой тетрадой. Форматы Z и P могут иметь длину от 1 до 16 байт.

Пример:

+3010 = 1Е16 = 001ЕH = 0000001ЕF
-3010 = 1Е16 = FFE2H = FFFFFFE2F
+3010 = 1Е16 = 0.1Е16*162 = 421E0000E = 421E000000000000D
-3010 = 1Е16 = -0.1Е16*162 = C21E0000E = C21E000000000000D
+3010 = F3AOZ = 030AP
-3010 = F3BOZ = 030BP
+32510 = F3F2A5Z = 325AP

Назад | Содержание | Вперед