Циклический сдвиг битовой последовательности

32-хprocedure Rotate( Val: integer );
16-тиprocedure Rotate ( Val: integer );

Val   - количество позиций, на которые циклически сдвигается битовая последовательность.

Процедура осуществляет циклический сдвиг битовой последовательности на количество позиций Val   Если величина Val   отрицательная, то осуществляется циклический сдвиг влево ( принцип циклического сдвига последовательности на 1 бит влево поясняет рисунок):

12N-1N
    
23N1

Если величина Val   положительная, то осуществляется циклический сдвиг вправо.

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

Например, переменная BitStr   содержит битовую последовательность вида (11010011011). После выполнения операции сдвига на +3 текущая строка BitStr  будет содержать битовую последовательность вида (01111010011)
32-х

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


BitStr.Rotate (3); { циклический сдвиг вправо }

16-ти

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


BitStr^.Rotate (3); { циклический сдвиг вправо }