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

ROR - цикличный побитовый сдвиг вправо


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