__ll_lshift
Microsoft-spezifisch
Verschiebt den angegebenen 64-Bit-Wert um die angegebene Anzahl von Bits nach links.
Syntax
unsigned __int64 __ll_lshift(
unsigned __int64 Mask,
int nBit
);
Parameter
Maske
[in] Der ganzzahlige 64-Bit-Wert, der nach links verschoben werden soll.
nBit
[in] Die Anzahl der zu verschiebenden Bits.
Rückgabewert
Die Maske, die nach links verschoben wurde, um nBit
Bits.
Anforderungen
Intrinsic | Aufbau |
---|---|
__ll_lshift |
x86, x64 |
Headerdatei<intrin.h>
Hinweise
Wenn Sie Ihr Programm für die 64-Bit-Architektur kompilieren und nBit
größer als 63 sind, ist nBit
die Anzahl der zu verschiebenden Bits modulo 64. Wenn Sie Ihr Programm für die 32-Bit-Architektur kompilieren und nBit
größer als 31 sind, ist nBit
die Anzahl der zu verschiebenden Bits modulo 32.
Der ll
Name gibt an, dass es sich um einen Vorgang in long long
(__int64
) handelt.
Beispiel
// 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;
}
Output
10000
Hinweis
Es gibt keine nicht signierte Version des linken Schichtvorgangs. Dies liegt daran, dass __ll_lshift
bereits ein nicht signierter Eingabeparameter verwendet wird. Im Gegensatz zur rechten Schicht gibt es keine Zeichenabhängigkeit für die linke Schicht, da das geringste signifikante Bit im Ergebnis unabhängig vom Vorzeichen des verschobenen Werts immer auf Null festgelegt ist.
Ende Microsoft-spezifisch