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

32-хFunction Val_Mas(Kol: Integer; var MasBt): Integer;
16-тиFunction Val_Mas(var Mas; Kol: word) : word;

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

Функция устанавливает - Kol  байт массива - Mas  в состояния - bt1  или - bt0 , определяемые битовой переменной (преобразование в распакованный вариант) количество переопределенных элементов массива выдается в качестве результата функции. Если длина битовой переменной меньше значения - KOL , то в результирующем массиве будет переопределено количество элементов, равное длине битовой переменной.

В результате выполнения примера, приведенного в таблице, переменная - J   может принять значения от 0 до 20 (в зависимости от текущей длины битовой переменной) и первые - J   байт массива установятся в состояния - bt1   или - bt0.  Если битовая переменная длиннее 20 бит, то все равно будут установлены только первые 20 байт массива.

32-х Var J : integer; BitStr : TStr_bit;
M : array [1..20] of byte; {Объявление переменных}

...

J := BitStr.Val_Mas ( M, SizeOf(M) ); {Переопр. элементов массива}

...

16-ти Var J : word; BitStr : PStr_bit;
M : array [1..20] of byte; {Объявление переменных}

...

J := BitStr^.Val_Mas ( M, SizeOf(M) ); {Переопр. элементов массива}

...