__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 전용 종료