Как уже сказано, разными типами простых данных являются знаки, целые числа, вещественные числа и логические данные. Логический и физический уровни их представления определяются конструктивными особенностями ОЗУ компьютера. А именно, так как память компьютера имеет байтовую структуру, к ней привязывается представление всех данных. Более четким является утверждение, что для представления значений простых данных в памяти компьютера употребляется машинное слово; этот термин в информатике применяется в 2-ух значениях:

Машинное слово — (1) совокупа двоичных частей, обрабатываемая как единое целое в устройствах и памяти компьютера; (2) данные, находящиеся в одной ячейке памяти компьютера.

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

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

* Конкретно по этой причине в английской литературе заместо ОЗУ употребляется термин RAM – Random Access Memory — «память с случайной выборкой».

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

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

Разглядим особенности представления всех типов простых данных при помощи 16-битного машинного слова. Порядок размещения значений данных представлен на рис.6.1.

Для представления знаков (литерных данных) машинное слово делится на группы по 8 бит, в которые и записываются двоичные коды знаков. Ясно, что в 16-битном машинном слове могут быть записаны сразу два знака (рис. 6.1,а). Значениями одиночных литерных данных являются коды знаков. Огромное количество допустимых значений данных этого типа для всех шифровок, основанных на однобайтовом представлении, составляет 28 — 256; двубайтовая шифровка Unicode допускает 65536 значений. Совокупность знаков образует алфавит, т.е. для их установлен словарный порядок следования в согласовании с числовым значением кода; это, в свою очередь, позволяет найти над обилием символьных данных операции математических отношений >, <, =. Конкретно над одиночной символьной переменной определена единственная операция — изменение значения с 1-го кода на другой. Все другие деяния выполняются со сложными символьными данными, к примеру, типа String в языке PASCAL (см. п.6.3.).

В представлении целых чисел со знаком (к примеру, тип Integer в языке PASCAL) старший бит (15-й), как уже дискуссировалось ранее, отводится под запись знака числа (0 соответствует «+», 1 — «-»), а другие 15 двоичных разрядов — под запись прямого (для положительного) либо оборотного (для отрицательного) двоичного кода числа (рис. 6.1,6). При всем этом вероятные значения чисел ограничены интервалом [-32768 + 32767]. Вместе с описанным употребляется и другой формат представления целых чисел — беззнаковый; разумеется, он применим только для записи положительных чисел. В данном случае под запись числа отводятся все 16 двоичных разрядов, и интервал разрешенных значений оказывается [0 * 65535] (в PASCAL’e таковой числовой тип именуется Word). Кроме математических отношений над целыми числами определены операции сложения, вычитания и умножения (в тех случаях, когда они не приводят к переполнению разрядной сетки), также целочисленного деления и нахождения остатка от целочисленного деления.

Представление вещественных чисел с плавающей запятой также рассматривалось ранее. При записи числа оно переводится в нормализованную форму с выделением и отдельным хранением знака мантиссы, знака порядка, порядка и мантиссы. Для представления числа отводится несколько машинных слов. Ситуация, соответственная числовому типу Single в языке PASCAL, когда для представления числа отводится два машинных слова, проиллюстрирована на рис. 6.1,в. Этой формой охватывается спектр модулей мантиссы [1,5∙10-45¸3,4∙1038] с 7-ю десятичными цифрами мантиссы. Запись мантиссы начинается с 23-го разряда. Так как мантисса выбирается таковой, чтоб ее модуль отвечал условию 0,12 ≤ |M2| < 1, всегда значение старшего разряда числа 0 (целых) — оно не отображается при записи, а значение последующего разряда всегда 1. В процессе выполнения операций может произойти переполнение разрядной сетки (на 1 разряд) либо, напротив, ее освобождение (т.е. в первом отображаемом разряде окажется 0) — по этой причине после каждой операции с числами в таковой форме делается нормализация результата, которая состоит в таком изменении порядка числа и сдвиге мантиссы, чтоб первой означающей цифрой опять оказалась 1. Изменение порядка в представлении числа эквивалентно перемещению разделителя целой и дробной частей числа — как уже говорилось, такая форма получила заглавие «с плавающей запятой». Благодаря применению плавающей запятой делается автоматическое масштабирование чисел в процессе вычислений, что понижает погрешность их обработки. Над вещественными числами определены все четыре арифметические операции. Кроме этого имеются операции преобразования вещественного типа к целому (к примеру, round и trunc в PASCAL’e).

Логические данные могут принимать одно из 2-ух значений — 0 либо 1 (0 соответствует логическому False, 1 — True, при этом, принимается False<True). Для их записи было бы довольно отвести всего один двоичный разряд. Но в ОЗУ компьютера отсутствует доступ к отдельному биту, потому для представления логических данных выделяется целый б, в младший разряд которого и помещается значение. Таким образом, в машинном слове логические данные размещаются в 0-м и в 8-м битах (см. рис. 6.1, г). Над логическими данными определены операции: логическое умножение (конъюнкция, ^), логическое сложение (дизъюнкция, v), логическое отрицание (Ø). Примером логических данных может служить тип Boolean в PASCAL’e

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

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