Udostępnij za pośrednictwem


__ll_lshift

Specyficzne dla firmy Microsoft

Przesuwa podaną wartość 64-bitową po lewej stronie o określoną liczbę bitów.

Składnia

unsigned __int64 __ll_lshift(
   unsigned __int64 Mask,
   int nBit
);

Parametry

Maska
[in] 64-bitowa wartość całkowita, aby przesunąć w lewo.

nBit
[in] Liczba bitów do przesunięcia.

Wartość zwracana

Maska przesunięta w lewo przez nBit bity.

Wymagania

Nieodłączny Architektura
__ll_lshift x86, x64

Plik<nagłówka intrin.h>

Uwagi

Jeśli skompilujesz program dla architektury 64-bitowej i nBit jest większy niż 63, liczba bitów do przesunięcia wynosi nBit modulo 64. Jeśli skompilujesz program dla architektury 32-bitowej i nBit jest większy niż 31, liczba bitów do przesunięcia to nBit modulo 32.

W ll nazwie wskazuje, że jest to operacja w elemecie long long (__int64).

Przykład

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

Wyjście

10000

Uwaga

Nie ma niepodpisanej wersji operacji przesunięcia po lewej stronie. Dzieje się tak, ponieważ __ll_lshift używa już niepodpisanego parametru wejściowego. W przeciwieństwie do przesunięcia w prawo, nie ma zależności znaku dla lewej zmiany, ponieważ najmniej znaczący bit w wyniku jest zawsze ustawiony na zero niezależnie od znaku przesuniętej wartości.

END Microsoft Specific

Zobacz też

__ll_rshift
__ull_rshift
Funkcje wewnętrzne kompilatora