_rotl
, _rotl64
, _rotr
_rotr64
비트를 왼쪽(_rotl
) 또는 오른쪽(_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 _rotr64(
unsigned __int64 value,
int shift
);
매개 변수
value
순환할 값입니다.
shift
이동할 비트 수입니다.
반환 값
순환된 값입니다. 오류 반환이 없습니다.
설명
및 함수는 _rotl
부호 value
없는 비트로 shift
회전 _rotr
합니다. _rotl
은 값을 왼쪽으로 순환하고, _rotr
은 값을 오른쪽으로 순환합니다. 두 함수 모두 한 쪽 끝에서 다른 끝 value
으로 회전된 비트를 래핑합니다.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_rotl , _rotl64 |
<stdlib.h> |
_rotr , _rotr64 |
<stdlib.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
라이브러리
모든 버전의 C 런타임 라이브러리입니다.
예시
// 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 ) );
}
출력
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