Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.19;
Скачать: CL | DM;

Вниз

Организация множества   Найти похожие ветки 

 
CMOS ©   (2007-07-21 08:59) [0]

Не могу понять как организовано множество. Весит оно всего лишь 32 байта (выведите его в файл), а содержит 256 элементов. Ни в каком другом языке подобного нет. Но множество работает только с числами от 0 до 255. А для слов приходится использовать массив и проверять вхождение числа поэлементно, что существенно дольше.
Нашел кое-что по своему вопросу:

var a: Array[0..124] of Byte;
   x: Word;
begin
x:= 1000;
a[x shr 3]:=a[x shr 3] or (1 shl (x and 7));
if (a[x shr 3] and (1 shl (x and 7)))<>0 then Write("Yes") else Write("No");
Readln;
end.

Там ничего не объяснялось. Просто говорилось, что для числа 1000 нужен массив на 125 элементов.
Интересно, но это работает и с массивом на 100 и на 32. С числами 1000 и 10000.
Помогите разобраться в этом коде.


 
Virgo_Style ©   (2007-07-21 09:05) [1]

CMOS ©   (21.07.07 8:59)
Весит оно всего лишь 32 байта (выведите его в файл), а содержит 256 элементов.


32 * 8 = 256

Читать про байты и биты, и про операции с последними.


 
Anatoly Podgoretsky ©   (2007-07-21 11:44) [2]

Класс TBits


 
Юрий Зотов ©   (2007-07-21 14:16) [3]

> CMOS ©   (21.07.07 08:59)

32 байта - это 256 бит. Они пронумерованы от 0 (младший) до 255 (старший). Элементы множества упорядочены (т.е., тоже пронумерованы), поэтому каждому элементу множества соответствует свой бит. Если этот бит равен 1, то соответствующий ему элемент ВХОДИТ во множество, если нулю - НЕ входит. Вот и вся кухня.

PS
Именно по этой причине:

а). множество может быть составлено ТОЛЬКО из элементов, поддающихся упорядочиванию (то есть, принадлежащих семейству Ordinal types);

б). количество элементов во множестве (мощность множества) не может превышать 256 (поскольку максимальный размер множества - 32 байта);

в). если численное значение элемента множества задается явно, то оно должно лежать в диапазоне от 0 до 255 и не может повторяться в других элементах множества.


 
CMOS ©   (2007-07-24 07:16) [4]

Все ясно, всем спасибо



Страницы: 1 вся ветка

Текущий архив: 2007.08.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
3-1177999034
Nemec
2007-05-01 09:57
2007.08.19
TService и доступ к базе данных


15-1184845462
db2admin
2007-07-19 15:44
2007.08.19
Помогите составить список литературы пожалуйста, для начинающих


4-1172649288
Gavrila
2007-02-28 10:54
2007.08.19
CreateProcess на WinTS 2003 не могу запустить cmd-файл


1-1181721913
xpublic
2007-06-13 12:05
2007.08.19
Как получить список всех пунктов меню для организации доступа


15-1185146830
Ильюн
2007-07-23 03:27
2007.08.19
метод прогнозирования (АРПСС, arima)