Программирование на C и C++

Онлайн справочник программиста на C и C++

_rotl, _rotr

unsigned short _rotl(unsigned short val, int num)

unsigned short _rotr(unsigned short val, int num)

Прототип: 
Описание: 

Эти функции не определены стандартом ANSI С.

Функции _rotl() и _rotr() осуществляют ротацию разрядов величины val, то есть побитовый сдвиг на num разрядов влево или вправо, соответственно. Биты, которые выходят за границу разрядов числа с одной стороны, добавляются с другой стороны. Полученное число возвращает­ся в качестве результата. Например, если задана величина
1111 0000 0000 1111
то ротация влево на 1 разряд даст следующую величину
1110 0000 0001 1111

Пример: 
Следующая программа выводит значение числа 64 после его ротации влево, а затем осуществляет ротацию вправо:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
unsigned val = 64;
printf("Rotated left 2 bits = %d\n", _rotl(val,2));
printf("Rotated right 2 bits = %d\n", _rotr(val,2));
return 0;
}