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.
|
Изображение блока
|
![]() |
|
Примеры
|
![]() |


