Здравствуйте, S-SH, Вы писали:
>> вполне понятное из физического представления множеств
SS>Не догоняю, можно здесь поподробнее, почему понятное?
Множество представляется в delphi как массив длиной от 1 до 32 байтов, в зависимости от типа, на котором оно конструируется.
Например sizeof(set of byte)=32, sizeof(set of 1..2)=1.
Понятно, что чем больше значений в базовом типе, тем больше байтов занимает множество.
Вычисляется размер множества следующим образом:
(maxval div 8) - (minval div 8) + 1
При этом, так как компилятор размещает множество в целом кол-ве байтов,
то множеством set of minval..maxval можно физически представить значения от
(minval div 8)*8 до ((maxval div 8)+1)*8-1
То есть в вышеприведенном примере мы получаем, что для rangedset создается
массив из 31 байта, который физически может содержать эл-ты от 8 до 255.
И любой из этих эл-тов можно добавить в множество, даже неверные с точки зрения логики 8 и 9.
С уважением, Евгений Белоусов.
... << RSDN@Home 1.1 beta 1 >>