Множество из элементов перечислимого типа

Множество, базовым типом которого есть перечислимый тип,

хранится также, как множество, базовым типом которого является

тип byte. Однако, в памяти занимает место, которое зависит от ко-

личества элементов в перечислимом типе.

Пример:

Type

Video=(MDA,CGA,HGC,EGA,EGAm,VGA,VGAm,SVGA,PGA,XGA);

Var

S : set of Video;

В памяти будет занимать :

ByteSize = (9 div 8)-(0 div 8)+1=2 байта

При этом память для переменной S будет распределена как по-

казано на рис. 3.8.

┌────┬────┬────┬────┬────┬────┬────┬────┐

@S+0 │SVGA│VGAm│VGA │EGAm│EGA │HGC │CGA │MDA │

├────┼────┼────┼────┼────┼────┼────┼────┤

@S+1 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │XGA │PGA │

└────┴────┴────┴────┴────┴────┴────┴────┘

7 0

Рис. 3.8. Распределение памяти для переменной

типа set of Video

Если выполнить оператор S:=[CGA,SVGA], содержимое памяти при

этом будет: @S+0 - 10000010

@S+1 - 00000000