Приложение 3. Представление информации в компьютере.
Память компьютера
Память компьютера состоит из ячеек (битов). Каждый бит может хранить одну двоичную цифру. Следовательно, значением бита может быть ноль или единица. Восемь битов объединены в байт. Максимальное число, которое можно записать при помощи восьми двоичных цифр – это 11111111, что соответствует десятичному числу 255, минимальное – ноль. Поэтому значением байта может быть число от нуля до 255.
Память используется для хранения переменных. Так как переменные различных типов могут принимать различные значения, то для их хранения нужно разное количество памяти. Память под переменные выделяется целым числом байтов. Например, значением переменной типа char может быть любой из 256 символов. Поэтому для хранения переменной этого типа достаточно одного байта. Значением переменной типа integer может быть число от -32 768 до 32 767 (65 535 значений), для хранения переменной этого типа требуется два байта. Очевидно, что чем больше диапазон значений типа, тем больше байтов нужно для хранения переменной этого типа (табл. П3.1).
Таблица П3.1. Диапазоны значений и занимаемая память для разных типов переменных.
Тип переменной | Занимаемая память (количество байтов) | Диапазон значений |
---|---|---|
Char | 1 | Любой символ |
String | 256 | Строка до 256 символов |
String [n] | 1хn | Строка до 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 вещественных чисел нужно более 3 Кбайт памяти (20x20x8 = 3200).
Память компьютера кажется неограниченной, но если ее использовать нерационально, то в некоторый момент может возникнуть ситуация, связанная с нехваткой памяти.