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