__ll_lshift
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]
Microsoft 固有の仕様 →
指定したビット数左に指定された 64 ビット値へ移動します。
unsigned __int64 __ll_lshift(
unsigned __int64 Mask,
int nBit
);
パラメーター
[入力] Mask
左シフトされる 64 ビット整数値。[入力] nBit
シフトするビット数。
戻り値
マスクは nBit ビットを左にシフト。
必要条件
組み込み |
アーキテクチャ |
---|---|
__ll_lshift |
x86x64 |
ヘッダー ファイル <intrin.h>
解説
64 ビット アーキテクチャを使用してプログラムをコンパイルおよび nBit が 63 より大きい場合シフトするビット数 nBit の残りの部分は 64 です。 32 ビット アーキテクチャを使用してプログラムをコンパイルおよび nBit が 31 より大きい場合シフトするビット数 nBit の残りの部分は 32 です。
名前の ll はlong long ()__int64 の操作であることを示します。
使用例
// ll_lshift.cpp
// compile with: /EHsc
// processor: x86, x64
#include <iostream>
#include <intrin.h>
using namespace std;
#pragma intrinsic(__ll_lshift)
int main()
{
unsigned __int64 Mask = 0x100;
int nBit = 8;
Mask = __ll_lshift(Mask, nBit);
cout << hex << Mask << endl;
}
出力
10000
一つの 説明は 左シフト演算で符号なしのバージョンではありません。 これは __ll_lshift が既に符号なしの型パラメーターを使用するためです。 右シフトの結果とは異なり最下位ビットが再配置値の符号に関係なく常にゼロに設定されるため左シフトの符号の依存関係がありません。