_rotl, _rotl64, _rotr_rotr64
Rotates bits to the left (_rotl) or right (_rotr).
unsigned int _rotl(
unsigned int value,
int shift
);
unsigned __int64 _rotl64(
unsigned __int64 value,
int shift
);
unsigned int _rotr(
unsigned int value,
int shift
);
unsigned __int64 _rotl64(
unsigned __int64 value,
int shift
);
Параметры
value
Value to be rotated.shift
Number of bits to shift.
Возвращаемое значение
The rotated value. There is no error return.
Заметки
The _rotl and _rotr functions rotate the unsigned value by shift bits. _rotl rotates the value left. _rotr rotates the value right. Both functions wrap bits rotated off one end of value to the other end.
Требования
Routine |
Required header |
---|---|
_rotl, _rotl64 |
<stdlib.h> |
_rotr, _rotr64 |
<stdlib.h> |
For more compatibility information, see Compatibility in the Introduction.
Libraries
All versions of the C run-time libraries.
Пример
// crt_rot.c
/* This program shifts values to rotate an integer.
*/
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
unsigned val = 0x0fd93;
__int64 val2 = 0x0101010101010101;
printf( "0x%4.4x rotated left three times is 0x%4.4x\n",
val, _rotl( val, 3 ) );
printf( "0x%4.4x rotated right four times is 0x%4.4x\n",
val, _rotr( val, 4 ) );
printf( "%I64x rotated left three times is %I64x\n",
val2, _rotl64( val2, 3 ) );
printf( "%I64x rotated right four times is %I64x\n",
val2, _rotr64( val2, 4 ) );
}
Output
0xfd93 rotated left three times is 0x7ec98 0xfd93 rotated right four times is 0x30000fd9 101010101010101 rotated left three times is 808080808080808 101010101010101 rotated right four times is 1010101010101010
Эквивалент в .NET Framework
Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.