Память компьютера
В памяти компьютера числа хранятся в виде битов. Каждый бит может принимать значение одной двоичной цифры. Следовательно, значением бита может быть ноль или единица. Восемь битов объединены в байт. Максимальное число, которое можно записать при помощи восьми двоичных цифр, – это 11111111, что соответствует десятичному числу 255, минимальное – ноль. Поэтому, значением байта может быть число от нуля до 255.
Переменные хранятся в памяти. Так как переменные различных типов могут принимать различные значения, то для их хранения нужен разный объем памяти. Память под переменные выделяется в байтах (целое число). Например, значением переменной типа char может быть любой из 256 символов. Поэтому для хранения переменной такого типа достаточно одного байта.
Значением переменной типа integer может быть число от -32 768 до 32 767 (65 535 значений). Для хранения переменной этого типа требуется два байта. Очевидно, что чем больше диапазон значений типа, тем больше байтов нужно для хранения переменной этого типа:
CHAR | 1 | Любой символ |
STRING | 256 | Строка до 256 символов |
STRING[N] | 1 x n | Строка до п символов |
BYTE | 1 |
0-255 |
WORD | 2 | 0-65 535 |
INTEGER | 2 | -32 768-32 767 |
LONGINT | 4 | -2 147 483 648-2 147 483 647 |
REAL | 6 | 2.9Е-39-1.7е38 |
SINGLE | 4 | 1.5Е-45-3.4е38 |
DOUBLE | 8 | 5.0Е-324-1.7е308 |
EXTENDED | 8 | 3.4Е-4932-1.1е4932 |
В программе для одного и того же значения можно использовать переменные разного типа (при этом они будут занимать разный объем памяти). Например, если в программе используется переменная Day (число месяца), то для нее можно задать типы byte, integer или longint.
В первом случае будет занят один байт памяти, во втором – два, в третьем – четыре. Однако реально будет использоваться только один байт, а остальные – просто заняты. Поэтому следует подбирать наиболее подходящий тип для каждой переменной. Особое внимание нужно обращать на описание строковых переменных и массивов.
Выделяя память для строковых переменных, помните, что если не указана предельная длина строки, то переменной выделяется 256 байтов. При объявлении переменной, предназначенной, например, для хранения имени человека, следует писать:
name:string!30], а не name:string.
Каждому массиву программы выделяется память, объем которой определяется как типом элементов массива, так и их количеством. Например, для хранения двумерного массива вещественных чисел (например, 20x20) нужно более трех килобайт памяти (20x20x8 = 3200).
Хотя объем памяти компьютера кажется неограниченным, но если ее нерационально использовать, то в один прекрасный момент памяти может не хватить.