다음을 통해 공유


_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_rotr 함수들은 부호가 없는 을 shift 비트들에 의해 회전시킵니다. _rotl 는 값을 왼쪽으로 회전합니다. _rotr 는 값을 오른쪽으로 회전합니다. 두 함수 모두 다른 끝에서 의 끝으로 회전된 비트들을 래핑합니다.

요구 사항

루틴

필수 헤더

_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 ) );
}

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 항목

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

부동 소수점 지원

_lrotl, _lrotr