Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchebnoePosobieInformatika2012_-_RC4.docx
Скачиваний:
133
Добавлен:
26.05.2015
Размер:
2.75 Mб
Скачать

Форматы данных

Под данными будем понимать информацию, представленную в виде, пригодном для обработки автоматическими средствами, например, в двоичном коде. Формат представления данных в памяти ЭВМ зависит от ее архитектуры.

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

Представление логических кодов. Логические коды могут размещаться в отдельных байтах и в словах. Для их представления используются все разряды: для байта от 0-го до 7-го, для слова - от 0-го до 15-го. Логическими кодами могут быть представлены символьные величины, числа без знака и битовые величины.

Символьные величины задаются в коде ASCII (КОИ-7), каждый символ занимает один байт, разряд 7 которого всегда содержит 0. Символы строки размещаются в последовательно-адресуемых байтах оперативной памяти. Например, символьная строка ABCDE (коды ASCII: A- 1018,B- 1028,C- 1038, D- 1048,Е- 1058), первый знак которой помещается в ячейку с адресом 1000 (адреса представлены в 8-ричной системе счисления), размещается в оперативной памяти следующим образом:

1001 1000

1003 1002

1005 1004

Числа без знака имеют диапазон представления от 000 до 3778 -для байта, от 000000 до 1777778 - для слова. Битовые величины задают значения отдельных разрядов байта или слова.

Представление чисел в формате с фиксированной запятой. Числа с фиксированной запятой могут занимать байт или слово. Если число с фиксированной запятой занимает байт, то для его представления используются разряды с 0-го по 6-й. Разряд 7 называется знаковым. При размещении числа с фиксированной запятой в слове для его представления используются разряды с 0-го по 14-й. Знак числа содержится в разряде 15. Значения знакового разряда: 0 - для положительных чисел; 1 - для отрицательных чисел.

Отрицательные числа в формате с фиксированной запятой представляются в дополнительном коде (посредством операции дополнения до 2-х).

Таблица 3.10 – Примеры представления чисел с фиксированной запятой

Байт

Слово

Число

Восьмеричный код

Двоичный код

Восьмеричный код

Двоичный код

+5

005

00000101

000005

0000000000000101

+63

077

00111111

000077

0000000000111111

-5

373

11111011

177773

1111111111111011

-63

315

11001101

177715

1111111111001101

0

000

00000000

000000

0000000000000000

Диапазон представления чисел с фиксированной запятой: для байта - от - 12810 до +12710; для слова - от –3276810 до +3276710. При выполнении операций над числами, представленными в формате с фиксированной запятой, они масштабируются таким образом, чтобы каждое число лежало в интервале (-1, +1). Другими словами, в этом случае ЭВМ оперирует только с числами, по модулю не превосходящими единицы. При этом необходимо следить за тем, чтобы в процессе операций результат не получился большим, чем 2k - 1, где k - число разрядов, отведенных для представления в машине. Такая опасность есть при выполнении операций сложения и деления. Опасность представляют также операции вычитания и умножения. При вычитании может получиться так, что разность станет числом меньшим, чем представляется в машине, и результат исчезнет. При многократном умножении (из-за того, что умножаются числа, меньшие единицы) может произойти то же самое. Поэтому при использовании формата представления чисел с фиксированной запятой приходится следить как за случаями возможного переполнения разрядной сетки машины, так и за случаями, связанными с появлением машинного нуля. Необходимость постоянно следить за тем, чтобы числа в машине не вышли за пределы интервала (-1, +1), а также неизбежное в таких устройствах накопление абсолютной погрешности вычислений из-за перемасштабирования, при котором цифры младших разрядов (а именно в них накапливается абсолютная погрешность) передвигаются в старшие разряды, привели к тому, что в универсальных ЭВМ представление чисел с фиксированной запятой практически перестало применяться. Оно сохраняется в специализированных вычислительных системах, где диапазон изменения чисел заранее проанализирован, в некоторых микропроцессорах и микро-ЭВМ.

Представление чисел в формате с плавающей запятой. Любое вещественное число х, представленное в системе счисления с основанием N, можно записать в виде

xmN±p ,

где m - мантисса, р - характеристика (или порядок) числа.

Если |m| < 1, то запись числа называется нормализованной слева. Следующие примеры показывают, как можно представить любое число в форме с плавающей запятой:

а) в десятичной системе счисления

372,95 = 0, 37295103;

25 = 0,025 103 = 0,25 102;

0,0000015 = 0,15  10-5 = 0,015  10-4;

б) в двоичной системе счисления

11010, 1101 = 0,0110101101  26;

0,011011=0,11011 х2-1;

0,1=0,1x20

(здесь порядок определяет, на сколько разрядов необходимо осуществить сдвиг относительно запятой).

Из этих примеров видно, что представление чисел в форме с плавающей запятой неоднозначно. В ЭВМ с целью минимизации погрешности при вычислениях и эффективного использования памяти применяют процедуру нормализации справа.

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

Нормализованное число одинарной точности, представленное в формате с плавающей запятой, записывается в память следующим образом: знак числа - в бите 15 первого слова (0 - для положительных и 1 - для отрицательных чисел); порядок размещается в битах 7 -14 первого слова, а мантисса занимает остальные 23 бита в двух словах. Нормализованное число двойной точности записывается в четыре слова памяти и отличается от представления чисел одинарной точностью только тем, что продолжение мантиссы размещается в следующих за первым трех последовательных словах памяти, а всего под мантиссу в этом случае отводится 55 бит.

Порядок числа с плавающей запятой изменяется в диапазоне от -12810 (2008) до +12710 (1778) и запоминается увеличенным на 12810 (2008). Такой способ представления порядка называется смещенным.

Следует иметь в виду, что, хотя для мантиссы отведены 23 разряда -для чисел одинарной точности и 55 разрядов - для чисел двойной точности, в операциях участвуют 24 и 56 разрядов соответственно, так как старший разряд мантиссы нормализованного числа не хранится, т.е. имеет место так называемый скрытый разряд. Однако при аппаратном выполнении операций этот разряд автоматически восстанавливается и учитывается при выполнении операций. Порядок числа также учитывает скрытый старший разряд мантиссы.

Также заметим, что нормализованная мантисса в двоичной системе счисления всегда представляется десятичным числом т, лежащим в диапазоне 0,5  m < 1.

Примеры представления чисел с плавающей запятой:

1)0,110 = 0,0(6314)8 = 0,000(1100)2 = 0,(1100)22-3; -310 = (-3 + 200)8 = 1758 = 011111012.

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

2) -49,510 = -61,48= -110001,1002 = -0,1100011226; 610 = (6 + 200)8 = 2068 = 100001102.

При выполнении арифметических операций над числами, представленными в формате с плавающей запятой, надо отдельно выполнять их для порядков и мантисс. При алгебраическом сложении чисел надо сначала уравнять порядки слагаемых. При умножении порядки надо складывать, а мантиссы перемножать. При делении из порядка делимого вычитают порядок делителя, а над мантиссами совершают обычную операцию деления. После выполнения операций необходимо провести нормализацию результата, если это необходимо, что приводит к изменению порядков, так как каждый сдвиг на один разряд влево соответствует уменьшению порядка на единицу, а сдвиг вправо - увеличению его на единицу. Введение термина «плавающая запятая» как раз и объясняется тем, что двоичный порядок, определяющий фактическое положение запятой в изображении числа, корректируется после выполнения каждой арифметической операции, т.е. запятая в изображении числа плавает (изменятся ее положение) по мере изменения данной величины. А в изображении чисел с фиксированной запятой - запятая жестко зафиксирована в определенном месте.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]