Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория информации - курс лекций.doc
Скачиваний:
432
Добавлен:
13.03.2015
Размер:
4.65 Mб
Скачать

2. Представление элементарных данных в озу

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

Машинное слово – это совокупность двоичных элементов, обрабатываемая в компьютере как единое целое;

Машинное слово – это данные, содержащиеся в одной ячейке памяти компьютера.

С технической точки зрения машинное слово объединяет запоминающие элементы, каждый из которых служит для записи 1 бита информации, в единую ячейку памяти. Количество таких объединяемых элементов кратно 8 (1 байт содержит 8 бит). Например, в отечественной ЭВМ «БЭСМ-6» длина машинного слова составляла 48 бит (6 байт), в машинах IBM– 16 бит (2 байта). Доступ к машинному слову в операциях записи и считывания данных осуществляется пономеру ячейкипамяти, который называетсяадресом ячейки.

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

В англоязычной литературе вместо термина «ОЗУ» используется термин «RAM», который означает «Random Access Memory» – «память с произвольным доступом». Время поиска нужной ячейки, а также продолжительность операций считывания или записи в запоминающем устройстве с произвольным доступом одинаково для всех ячеек, независимо от их адреса.

Для логического уровня представления элементарных данных важно то, что представление значений любых элементарных данных должно быть ориентировано на использование машинных слов определеннойиединойдля данного типа компьютера длины, так как представление элементарных данных на физическом уровне производится именно в ячейках ОЗУ. На ВЗУ (внешнем запоминающем устройстве) элементарные данные самостоятельно не представлены и доступ к ним отсутствует.

Рассмотрим особенности представления различных типов элементарных данных с помощью 16-битного машинного слова.

Для представления символов (литерных данных)машинное слово делится на группы по 8 бит, в которые и записываются двоичные коды символов. Ясно, что в 16-битном машинном слове могут быть записаны одновременно два символа (рис. 10):

Номера разрядов машинного слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

1

0

0

0

0

0

1

0

1

0

0

0

0

1

0

2-й байт (код символа 2)

1-й байт (код символа 1)

Рис. 10. Представление символов в памяти ЭВМ

Значениями одиночных литерных данных являются коды символов. Множество допустимых значений данных этого типа для всех кодировок, основанных на таком однобайтовом представлении, составляет . Совокупность символов образуеталфавит, то есть для символов установлен лексикографический порядок следования в соответствии с числовым значением кода; это позволяет определить над множеством символьных данных операции математических отношений «больше», «меньше», «равно». Непосредственно над одиночной символьной переменной определена только одна операция – изменение значения с одного кода на другой. Все остальные возможные действия производятся над сложными данными (например, типаStringв языке программированияPASCAL).

В представлении целых чисел со знаком(например, типIntegerв языкеPASCAL) старший бит (15-й) отводится под запись знака числа (0 соответствует «+», 1 соответствует «–»), а остальные 15 разрядов (с 0-го по 14-й) отводятся под запись двоичного кода числа (рис. 11):

Номера разрядов машинного слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

1

0

0

0

0

0

1

0

1

0

0

0

0

1

0

Двоичный код числа

Знак числа

Рис. 11. Представление целого числа со знаком в памяти ЭВМ

При этом возможные значения чисел ограничены интервалом .

Наряду с описанным используется и другой формат представления целых чисел – беззнаковый. Этот формат применим для записи положительных целых чисел. В этом случае под запись числа отводятся все 16 двоичных разрядов, и интервал разрешенных значений. В языкеPASCALтакой числовой тип называетсяWord. Помимо математических отношений, над целыми числами определены операции сложения, вычитания, умножения, целочисленного деления и нахождения остатка от целочисленного деления.

Представление в ОЗУ вещественных чисел с плавающей точкойхарактеризуется тем, что при записи число переводится в нормализованную форму с выделением порядка, мантиссы и их знаков. Для представления числа отводится несколько машинных слов. Ситуация, соответствующая числовому типуSingleязыкаPASCAL, когда для представления числа отводятся два машинных слова, проиллюстрирована ниже (рис. 12):

Номера разрядов машинного слова

31

30

29

28

27

26

25

24

23

22

5

4

3

2

1

0

0

1

0

0

0

0

1

1

1

1

0

0

0

0

1

0

Двоичный код мантиссы

Двоичный код

порядка

Знак порядка

Знак мантиссы

Рис. 12. Представление вещественного числа в ОЗУ

Этой формой представления охватывается диапазон модулей мантиссы с 7-ю десятичными цифрами мантиссы. Запись мантиссы располагается с 0-го по 23-й разряд. Так как мантисса выбирается такой, чтобы ее модуль отвечал условию, то значение «0 целых» не отображается, а значение самого старшего отображаемого разряда мантиссы всегда «1». В процессе выполнения операций может произойти переполнение разрядной сетки (на 1 разряд) или, наоборот, ее освобождение (то есть в первом отображаемом разряде окажется 0). По этой причине после каждой операции с числами в такой форме производится нормализация результата, которая состоит в таком изменении порядка числа и сдвиге мантиссы, чтобы первой значащей цифрой в записи модуля мантиссы снова оказалась 1. Изменение порядка в представлении числа эквивалентно перемещению разделителя целой и дробной частей числа, поэтому такая форма и получила название «с плавающей точкой». Благодаря применению представления с плавающей точкой производится автоматическое масштабирование чисел в ходе вычислений, что снижает погрешность их обработки. Над вещественными числами определены не только все четыре арифметические операции, но и операции преобразования вещественного числа к целому (например, операцииroundиtruncв языкеPASCAL).

Логические данные могут принимать одно из двух значений – 0 (что соответствует логическому False) и 1 (что сответствует логическомуTrue, причем принимаетсяTrue>False). Для записи логических данных было бы достаточно отвести всего один двоичный разряд, однако в ОЗУ компьютера отсутствует доступ к отдельному биту, поэтому для представления логических данных используется целый байт, в младший разряд которого и помещается значение логического данного. Таким образом, в машинном слове логические данные располагаются в 0-м и 8-м разрядах (битах) (рис. 13):

Номера разрядов машинного слова

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

2-е логическое значение

1-е логическое значение

Рис. 13. Представление логических данных в ОЗУ

Над логическими данными определены операции: логическое умножение (конъюнкция, ), логическое сложение (дизъюнкция,), логическое отрицание (). Примером определения логических данных может служить типBooleanв языке программированияPASCAL.

В заключение подчеркнем, что значения элементарных данных формируются в ходе исполнения программы и имеют физическое представление в ОЗУ. В отличие от значений идентификаторы данных существуют только на логическом уровне и используются для обозначения данных в тексте программы. При трансляции программы с языка программирования в машинный код имена (идентификаторы) данных заменяются номерами ячеек, в которых данные размещаются. Таким образом, при исполнении программы обращение к данным производится по адресу ячейки, а не по идентификатору. Адреса могут быть абсолютными– в этом случае они не изменяются при загрузке программы в ОЗУ (именно такой способ адресации данных применяется в исполняемых программных файлах с расширением.com). Однако в силу некоторых особенностей распределения памяти компьютера размер таких программ не может превышать 64 Кбайт. В исполняемых файлах с расширением.exeна этапе трансляции устанавливаютсяотносительныеадреса данных, которые конкретизируются непосредственно при размещении программы в ОЗУ – это несколько замедляет начало исполнения программы, зато снимает указанное выше ограничение на размер программы.

В некоторых прикладных программах в качестве элементарных данных используются данные таких, например, типов, как «Data» или «Денежный» вMSExcelилиMSAccess. Однако эти типы являются самостоятельными только для пользователя программы; самой же программой они сводятся к некоторой комбинации рассмотренных выше типов элементарных данных.