Freigeben über


__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;
}

Ausgabe

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

Siehe auch

__ll_rshift
__ull_rshift
Systeminterne Compiler