Основы языка Delphi

         

Десятичные и двоичные числа



Десятичные и двоичные числа

В обыденной жизни человек имеет дело с десятичными числами. В десятичной системе счисления для представления чисел используются цифры от О до 9. Значение числа определяется как сумма произведений цифр числа на весовой коэффициент, определяемый местом цифры в числе. Весовой коэффициент самой правой цифры равен единице, цифры перед ней — десяти, затем ста и т. д. Например, число 2703 равно 2x1000+7x100+0x10+3x1.

Если места цифр пронумеровать справа налево и самой правой позиции присвоить номер "ноль", то можно заметить, что вес i-го разряда равен i-й степени десяти (Рисунок П3.1).



Память компьютера



Память компьютера

Память компьютера состоит из ячеек (битов). Каждый бит может хранить одну двоичную цифру. Следовательно, значением бита может быть ноль или единица. Восемь битов объединены в байт. Максимальное число, которое можно записать при помощи восьми двоичных цифр — это 11111111, что соответствует десятичному числу 255, минимальное — ноль. Поэтому значением байта может быть число от нуля до 255.

Память используется для хранения переменных. Так как переменные различных типов могут принимать различные значения, то для их хранения нужно разное количество памяти. Память под переменные выделяется целым числом байтов. Например, значением переменной типа char может быть любой из 256 символов. Поэтому для хранения переменной этого типа достаточно одного байта. Значением переменной типа integer может быть число от -32 768 до 32 767 (65 535 значений), для хранения переменной этого типа требуется два байта. Очевидно, что чем больше диапазон значений типа, тем больше байтов нужно для хранения переменной этого типа (табл. П3.1).



Для внутреннего представления чисел



Рисунок П3.1.


Для внутреннего представления чисел компьютер использует двоичную систему счисления. Двоичные числа записываются при помощи двух цифр -нуля и единицы. Как и десятичная, двоичная система — позиционная. Весовой коэффициент i-го разряда равен двум в i-й степени (Рисунок П3.2).





Рисунок П3 2



Рисунок П3.2.



П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).

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