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