Поделиться через


_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