다음을 통해 공유


__ll_rshift

Microsoft 전용

첫 번째 매개 변수로 지정된 64비트 값을 두 번째 매개 변수로 지정된 비트 수만큼 오른쪽으로 이동합니다.

구문

__int64 __ll_rshift(
   __int64 Mask,
   int nBit
);

매개 변수

마스크
[in] 오른쪽으로 이동할 64비트 정수 값입니다.

nBit
[in] 이동할 비트 수, x64의 모듈로 64, x86의 모듈로 32입니다.

반환 값

비트로 nBit 이동된 마스크입니다.

요구 사항

Intrinsic 아키텍처
__ll_rshift x86, x64

헤더 파일<intrin.h>

설명

두 번째 매개 변수가 x64(x86의 경우 32)에서 64보다 큰 경우 해당 숫자는 모듈로 64(x86의 경우 32)를 사용하여 이동할 비트 수를 결정합니다. ll 접두사는 64비트 부가 정수 형식의 long long다른 이름__int64인 연산임을 나타냅니다.

예시

// ll_rshift.cpp
// compile with: /EHsc
// processor: x86, x64
#include <iostream>
#include <intrin.h>
using namespace std;

#pragma intrinsic(__ll_rshift)

int main()
{
   __int64 Mask = - 0x100;
   int nBit = 4;
   cout << hex << Mask << endl;
   cout << " - " << (- Mask) << endl;
   Mask = __ll_rshift(Mask, nBit);
   cout << hex << Mask << endl;
   cout << " - " << (- Mask) << endl;
}

출력

ffffffffffffff00
- 100
fffffffffffffff0
- 10

참고 항목

사용된 경우 _ull_rshift 오른쪽 이동 값의 MSB가 0이 되었으므로 음수 값의 경우 원하는 결과를 얻지 못했을 것입니다.

Microsoft 전용 종료

참고 항목

컴파일러 내장 함수
__ll_lshift
__ull_rshift