Сдвиг битовой последовательности вправо и дополнение

32-хprocedure BitDisplase ( Zn: byte );
16-тиprocedure BitDisplase ( Zn: byte );

Zn   - бит дополнения битовой последовательности.

Процедура осуществляет вставку бита дополнения в нулевую позицию битовой последовательности, все остальные биты последовательности сдвигаются на 1 бит вправо. Последний бит последовательности удаляется, поэтому операция не изменяет размер обрабатываемой битовой строки. Принцип функционирования процедуры поясняет рисунок:
12N-1N
    
Zn1N-2N-1

Принцип работы подпрограммы BitDisplase

Например, переменная - BitStr  содержит битовую последовательность вида (11010011011). После выполнения операции сдвига и дополнения битом bt0  текущая строка - BitStr  будет содержать битовую последовательность вида (01101001101)
32-х Var BitStr: TStr_bit; {Объявление переменной}


BitStr := TStr_Bit.Create; {Выделение памяти}
BitStr.Init_Sim(‘11010011011); {Установка значений бит переменной}
BitStr.BitDisplase (bt0); { сдвиг и дополнение }


BitStr.Free; {Освобождение памяти}

16-ти Var BitStr: PStr_bit; {Объявление переменной}


BitStr := New(PStr_Bit,Init(11)); {Выделение памяти}
BitStr^.Init_Sim(‘11010011011); {Устан. Знач. бит переменной}
BitStr^.BitDisplase (bt0); { сдвиг и дополнение }


Dispose(BitStr,Done); {Освобождение памяти}