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;
}
#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;
}