__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