Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

ROL - цикличный побитовый сдвиг влево


Бинарный оператор ROL циклично сдвигает влево биты по алгоритму:
  • В первом операнде in1 задается исходное значение для сдвига бит, а во втором операнде in2  - количество сдвигаемых бит в диапазоне [1 .. 31]. Если in2<0 или in2>31, сдвиг не осуществляется, возвращается значение in1.
  • При in2=1 осуществляется сдвиг всех битов на одну позицию влево, а значение старшего бита записывается в младший бит.
  • Предыдущая операция повторяется в количество in2 раз.
    Оба операнда и возвращаемое значение должны иметь целочисленный 32-битный тип данных INTEGER. В качестве операнда могут передаваться константы, переменные или выражения с результатом в виде целого числа. При сдвиге битов знак числа может изменяться.
    Пример работы оператора продемонстрирован на следующем изображении:
Синтаксис на языке ST.
Синтаксис
out := ROL(in1, in2)
Примеры
in1 := 2027;                     
in2 := 1;
out1 := ROL(in1, in2);                //out1 = 4054
out2 := ROL(1000*2+27, 1);   //out2 = 4054
out3 := ROL(5, 29);                    //out3 = -1610612735
 
Синтаксис на языках FBD/LD.
Изображение блока
Примеры