_lrotl
, _lrotr
Циклически сдвигает биты влево (_lrotl
) или вправо (_lrotr
).
Синтаксис
unsigned long _lrotl( unsigned long value, int shift );
unsigned long _lrotr( unsigned long value, int shift );
Параметры
value
Значение для сдвига.
shift
Количество битов для перемещения value
.
Возвращаемое значение
Обе функции возвращают значение с циклическим сдвигом. Не возвращается ошибка.
Замечания
_lrotr
И _lrotl
функции поворачиваются value
по shift
битам. _lrotl
поворачивает значение влево, в сторону более значительных битов. _lrotr
поворачивает значение вправо, в сторону менее значимых битов. Обе функции повернуты биты от одного конца value
к другому концу.
Требования
Маршрут | Обязательный заголовок |
---|---|
_lrotl , _lrotr |
<stdlib.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_lrot.c
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
unsigned long val = 0x0fac35791;
printf( "0x%8.8lx rotated left eight bits is 0x%8.8lx\n",
val, _lrotl( val, 8 ) );
printf( "0x%8.8lx rotated right four bits is 0x%8.8lx\n",
val, _lrotr( val, 4 ) );
}
0xfac35791 rotated left eight bits is 0xc35791fa
0xfac35791 rotated right four bits is 0x1fac3579
См. также
Поддержка математических и плавающих точек
_rotl
, , _rotl64
_rotr
_rotr64