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


_lrotl, _lrotr

Циклически сдвигает биты влево (_lrotl) или вправо (_lrotr).

unsigned long _lrotl( 
   unsigned long value, 
   int shift  
); 
unsigned long _lrotr( 
   unsigned long value, 
   int shift  
);

Параметры

  • значение
    Значение для сдвига.

  • shift
    Количество битов для сдвига value.

Возвращаемое значение

Обе функции возвращают сдвинутое значение. Нет какого-либо возврата ошибки.

Заметки

Функции _lrotl и _lrotr сдвигают value на shift битов. _lrotl выполняет циклический сдвиг влево. _lrotr выполняет циклический сдвиг вправо. Обе функции перемещают вытесненные с одного конца value биты в другой конец.

Требования

Подпрограмма

Обязательный заголовок

_lrotl

<stdlib.h>

_lrotr

<stdlib.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Библиотеки

Все версии библиотек времени выполнения C.

Пример

// crt_lrot.c

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   unsigned long val = 0x0fac35791;

   printf( "0x%8.8lx rotated left eight times is 0x%8.8lx\n", 
            val, _lrotl( val, 8 ) );
   printf( "0x%8.8lx rotated right four times is 0x%8.8lx\n", 
            val, _lrotr( val, 4 ) );
}

Output

0xfac35791 rotated left eight times is 0xc35791fa
0xfac35791 rotated right four times is 0x1fac3579

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Поддержка чисел с плавающей запятой

_rotl, _rotl64, _rotr, _rotr64