Установка бит переменной копированием данных из массива

32-хprocedure Init_array (var Ust; Kol : Integer);
16-тиprocedure Init_array (var Ust; Kol : word);

Kol   – количество устанавливаемых элементов битовой переменной;
Ust  – переменная произвольного типа.

Процедура устанавливает биты строки в состояния, определяемые переменной Ust  методом переписывания Kol  байт переменной в динамическую память, выделенную для битовых данных. Длина битовой строки устанавливается равной - Kol*8. В 16 разрядной версии, при необходимости, длина ограничивается величиной, максимально допустимой для изменяемой битовой переменной.

Пример преобразования целочисленной переменной, величина которой равна 5, в битовую последовательность (1010000000000000) длиной 16 бит, приведен в таблице:
32-х

Var BitStr: TStr_Bit; Izn : word; {Объявление переменных}
Begin
BitStr := TStr_Bit.Create; {Выделение памяти}
Izn := 5;
BitStr. Init_array (Izn,2); {Установка значений 16 бит переменной}
BitStr.Free; {Освобождение памяти}
End;

16-ти

Var BitStr: PStr_Bit; Izn : word; {Объявление переменных}
Begin
BitStr := New(PStr_Bit,Init(38,512)); {Выделение памяти}
Izn := 5;
BitStr^. Init_array (Izn,2); {Установка значений 16 бит переменной}
Dispose(BitStr,Done); {Освобождение памяти}
End;