Формы представления данных
В ЭВМ используются следующие формы представления данных:
числа с фиксированной точкой (запятой);
числа с плавающей точкой (запятой);
десятичные числа;
символьные данные.
При представлении числа X в форме с фиксированной точкой указываются знак числа (sign X) и модуль числа (mod X) в q-ичном коде. Иногда такую форму представления чисел называют естественной формой. Место точки (запятой) постоянно для всех чисел и в процессе решения задач не меняется. Знак положительного числа кодируется цифрой "О", а знак отрицательного числа - цифрой "1".
Код числа в форме с фиксированной точкой, состоящий из кода знака и qr-ичного кода его модуля, называется прямым кодом g-ичного числа. Разряд прямого кода числа, в котором располагается код знака, называется знаковым разрядом кода. Разряды прямого кода числа, в которых располагается g-ичный код модуля числа, называются цифровыми разрядами кода. При записи прямого кода знаковый разряд располагается левее старшего цифрового разряда и обычно отделяется от цифровых разрядов точкой.
В общем случае разрядная сетка ЭВМ для размещения чисел в форме с фиксированной точкой показана на рис. 1.4 а.
На рисунке показано п разрядов для представления целой части числа и m разрядов - для дробной части числа.
27
Рис. 1 .4. Формы представления чисел в ЭВМ
При заданных л и АЛ диапазон изменения модулей чисел, коды которых могут быть представлены в данной разрядной сетке, определяется неравенством
q-m ?|Х| ? qn - q-m.
Для двоичной системы счисления это
2-m; ? |Х| ? 2n - 2-m.
Соответственно максимальное и минимальное значения чисел определяются формулами:
Xmax=+(qn-q-m);
Xmin=-(qn-q-m);
Использование формы с фиксированной точкой для представления смешанных (с целой и дробной частью) чисел в ЭВМ практически не встречается. Как правило, используются ЭВМ либо с дробной арифметикой (n=0), либо с целочисленной арифметикой (n=0).
Форма представления чисел с фиксированной точкой упрощает аппаратную реализацию ЭВМ, уменьшает время выполнения машинных операций, однако при решении задач па машине необходимо постоянно следить за тем, чтобы все исходные данные, промежуточные и окончательные результаты находились в допустимом диапазоне представления.
Если этого не соблюдать, то возможно переполнение разрядной сетки, и результат вычислений будет неверным. От этих недостатков в значительной степени свободны ЭВМ, использующие форму представления чисел с плавающей точкой, или нормальную форму.
В нормальной форме число представляется в виде произведения
Х=т qp,
где т - мантисса числа;
q - основание системы счисления;
р - порядок.
Для задания числа в нормальной форме требуется задать знаки мантиссы и порядка, их модули в q- ичном коде, а также основание системы счисления. Нормальная форма представления чисел неоднозначна, ибо взаимное изменение т и р приводит к плаванию точки (запятой). Отсюда произошло название формы представления чисел.
28
Например, десятичное число 73,28 в нормальной форме может быть записано в следующих вариантах:
Х(10) = 73,28·100 = 7,328·10t= 0,7328·102 = 0,07328·103 = ... 732,8·10-1 и т.д.
Для однозначности представления чисел в ЭВМ используется нормальная нормализованная форма, в которой положение точки всегда задается перед значащей цифрой мантиссы, т.е. выполняется условие
q-1 ? |m| < q0 = 1 .
В общем случае разрядную сетку ЭВМ для размещения чисел в нормальной форме можно представить в виде, изображенном на рис. 1.4 б. Разрядная сетка содержит:
разряд для знака мантиссы;
r цифровых разрядов для q-ичного кода модуля мантиссы;
разряд для кода знака порядка;
s разрядов для q-ичного кода модуля порядка.
Диапазон представления модулей чисел в нормальной нормализованной форме определяется следующим неравенством:
q-1q-(qs-1)?|X|?(1-q-r)(qs-1)
В конкретной ЭВМ диапазон представления чисел с плавающей точкой зависит от основания системы и числа разрядов для представления порядка.
Примерами применяемых форм чисел с плавающей точкой с различными основаниями системы счисления являются:
X=m·2p, где 1/2?|m|
X=m·8p, где 1/8?|m|
X=m·16p, где 1/16?|m|
При этом у одинаковых по длине форматов чисел с плавающей точкой с увеличением основания системы счисления существенно расширяется диапазон представляемых чисел.
Точность вычислений при использовании формата с плавающей точкой определяется числом разрядов мантиссы г. Она увеличивается с увеличением числа разрядов.
При представлении информации в виде десятичных многоразрядных чисел каждая десятичная цифра заменяется двоично-десятичным кодом. Для ускорения обмена информацей, экономии памяти и удобства операций над десятичными числами предусматриваются специальные форматы их представления:
зонный (распакованный) и упакованный (рис.- 1.5). Зонный формат используется в операциях ввода-вывода десятичных данных, упакованный формат - для выполнения арифметических операций. Для этого в ЭВМ имеются специальные команды упаковки и распаковки десятичных чисел.
В зонном формате для представления десятичных цифр используется двоичный код обработки информации (рис. 1.5 а). Каждая цифра в этом коде занимает байт, причем в левую тетраду (зону) записывается код llll(2)=F(16). Исключение составляет один из крайних байтов, в котором разряды зоны отведены для представления знака числа.
29
Например, в ЕС ЭВМ для представления знака "плюс" выбран код 1100(2)=С(1()), а для представления знака "минус" - код 1101 =D()()). Код знака записывается в зону последнего байта (рис. 1.5 а). Так, число -6285 в зонном формате будет представлено в виде F6 F2 F8 D5.
а)
Байт |
Байт |
... |
Байт |
Байт |
Зона |
Цифра |
Зона |
Цифра |
... |
Зона |
Цифра |
Зона |
Цифра |
б)
Байт |
Байт |
... |
Байт |
Байт |
Цифра |
Цифра |
Цифра |
Цифра |
... |
Цифра |
Цифра |
Цифра |
Знак |
в)
Байт |
Байт |
... |
Байт |
Байт |
Знак |
Цифра |
Цифра |
Цифра |
... |
Цифра |
Цифра |
Цифра |
Цифра |
Рис. 1.5. Представление десятичных чисел
В упакованном формате каждый байт содержит код двух десятичных цифр. Правая тетрада последнего байта используется для кода знака числа (рис. 1.5 б). Десятичное число должно занимать целое число байтов. Если это условие не выполняется, то левая тетрада левого байта заполняется нулями. Например, код десятичного числа -6285 в упакованном формате имеет вид 06285D.
Для представления десятичных чисел в памяти используется прямой код.
В малых ЭВМ десятичные числа в упакованном формате (рис. 1.5, в) представляются дополнительным кодом, причем знаку плюс соответствует код 0000, а знаку минус - код 1001(2). Код того же десятичного числа Х(10) = -6285 в упакованном формате для малых ЭВМ имеет вид [X (10) ] доп = 9.3715.
Современные ЭВМ обрабатывают не только числовую, но и текстовую, или алфавитно-цифровую, информацию, содержащую буквы, цифры, знаки препинания, математические и другие символы. Именно такой характер имеет экономическая, плановая и учетная информация, а также тексты программ на алгоритмических языках. Характер этой информации таков, что для ее представления требуются слова переменной длины. Возможность представления, ввода, обработки и вывода алфавитно-цифровой (символьной) информации важна и для чисто математических задач, так как позволяет оформлять результаты вычислений в виде таблиц или графиков с нужными заголовками и пояснениями. Большое распространение для представления символьной информации в ЭВМ общего назначения получил
двоичный код обработки информации - ДКОИ. Кодировка символьной информации в ДКОИ приведена в табл. 1.2. В первой строке и в первом столбце таблицы указаны значения старшей и младшей тетрады байта соответственно.
В мини- и микро-ЭВМ для представления символьной информации часто используется специальный
код обмена информацией: КОИ-7. В том и другом случае для представления алфавитно-цифровой информации используется один байт. С помощью байта
30
Таблица 1.2
Двоичный код обработки информации
№ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
В |
С |
D |
Е |
F |
0 |
ПУС |
API |
ВЦФ |
Д16 |
Про- бел |
& |
- |
|
ц |
и |
я |
ь |
{ |
} |
\ |
0 |
1 |
НЗ |
СУ1 |
нзн |
Д17 |
|
|
/ |
|
а |
j |
|
ы |
А |
J |
дз |
1 |
2 |
НТ |
СУ2 |
РП |
син |
|
|
|
|
b |
k |
s |
3 |
В |
К |
S |
2 |
3 |
КТ |
СУЗ |
доз |
Д19 |
|
|
|
|
с |
1 |
t |
ш |
С |
L |
т |
3 |
4 |
ВЫП |
ВСТ |
БК |
ВКП |
|
|
|
|
d |
m |
u |
э |
D |
М |
и |
4 |
5 |
ГТ |
НС |
ПС |
ОСУ |
|
|
|
|
е |
n |
V |
щ |
Е |
N |
V |
5 |
6 |
НП |
ВШ |
КБ |
вп |
|
|
|
ю |
f |
0 |
vv |
ч |
F |
О |
W |
6 |
7 |
|
ожд |
АР2 |
кп |
|
|
|
а |
g |
P |
X |
ъ |
G |
Р |
X |
7 |
8 |
Д23 |
АН |
Д08 |
Д24 |
|
|
|
б |
h |
q |
У |
ю |
Н |
Q |
Y |
8 |
9 |
Д13 |
КН |
Д09 |
Д25 |
|
|
|
|
i |
r |
z |
А |
I |
R |
Z |
9 |
А |
НРБ |
УУК |
УР |
Д26 |
[ |
] |
| |
: |
д |
к |
P |
Б |
X |
Н |
Т |
3 |
В |
ВТ |
СП1 |
СП2 |
СПЗ |
. |
|
, |
# |
е |
л |
с |
Ц |
И |
О |
У |
Ш |
С |
ПФ |
РФ |
Д12 |
СТП |
| * |
% |
@ |
Ф |
M |
т |
Д |
И |
П |
Ж |
Э |
D |
ВК |
РГ |
ктм |
НЕТ |
( |
) |
|
|
г |
H |
У |
Е |
К |
Я |
в |
Ц |
Е |
ВЫХ |
РЗ |
ДА |
дзо |
+ |
; |
> |
= |
X |
0 |
ж |
Ф |
Л |
Р |
в |
Ч |
F |
ВХ |
РЭ |
зв |
ЗМ |
! |
¬ |
? |
" |
II |
П |
в |
Г |
м |
С |
ы |
3б |
<
/p>
можно закодировать 28=256 символов (табл. 1.2). В КОИ-7 используется только 7 разрядов байта, что позволяет кодировать 27=128 символов. Левый разряд каждого байта в этом случае всегда равен 0.
Символьная информация представляет собой последовательность знаков, представленных в ДКОИ или КОИ-7. При записи содержимого байта на бумаге обычно используются две шестнадцатеричные-цифры. Например, фамилия Брякалов Г.А. занимает 13 байтов, как это показано в табл. 1.3.
Таблица 1.3
Запись символьной информации
Номер байта |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
Символ |
Б |
Р |
я |
к |
а |
л |
0 |
в |
|
Г |
|
А |
|
Код символа |
ВА |
АА |
АО |
9А |
77 |
9В |
9Е |
ЕЕ |
40 |
DF |
4В |
В9 |
4В |
Во многих микропроцессорных системах и персональных ЭВМ для представления алфавитно-цифровых символов используется код ASCII (American Standart Code for Information Interchange - американский код обмена информацией), расширенный путем добавления букв русского алфавита. Для представления каждого символа также отводится один байт. Следует подчеркнуть, что все виды представления символьной информации отличаются только кодировкой символов.
31
Содержание раздела