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

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

_lrotl, _lrotr

unsigned long _lrotl(unsigned long num, inf i)

unsigned long _lrotr(unsigned long num, int i)

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

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

Функции _lrotl() и _lrotr() осуществляют побитовый сдвиг разрядов, составляющих величину l, на i разрядов влево или вправо соответственно. Полученное число возвращается в качестве ре­зультата. При выполнении сдвига те разряды, которые вышли за пределы разрядов числа, добав­ляются с противоположного конца числа. Например, если дано число
1111 0000 0000 1111 1111 0000 1010 0101
то сдвиг влево на 1 разряд дает величину
1110 0000 0001 1111 1110 0001 0100 1011

Пример: 
Следующая программа показывает результат вызова функций _lrotl() и _lrotr():
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
unsigned long l=1;

printf("1 rotated left 2 bits = %ld\n", _lrotl(1,2));
printf("1 rotated right 2 bits = %ld\n", _lrotr(1, 2));

return 0;
}

Смешанные функции