__ll_lshift

Specifické pro Microsoft

Posune zadanou 64bitovou hodnotu doleva o zadaný počet bitů.

Syntaxe

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

Parametry

Maska
[v] 64bitová celočíselná hodnota, která se posune doleva.

nBit
[v] Počet bitů, které se mají posunout.

Vrácená hodnota

Maska se přesunula doleva o nBit bity.

Požadavky

Vnitřní Architektura
__ll_lshift x86, x64

Hlavičkový soubor<intrin.h>

Poznámky

Pokud program zkompilujete pro 64bitovou architekturu a nBit je větší než 63, je počet bitů, které se mají posunout nBit , modulo 64. Pokud program zkompilujete pro 32bitovou architekturu a nBit je větší než 31, je počet bitů, které se mají posunout nBit , modulo 32.

V ll názvu je uvedeno, že se jedná o operaci long long__int64().

Příklad

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

Výstup

10000

Poznámka:

Neexistuje žádná nepodepsaná verze operace levého posunu. Důvodem je to, že __ll_lshift již používá nepodepsaný vstupní parametr. Na rozdíl od pravého posunu neexistuje závislosti na levém posunu, protože nejméně významný bit ve výsledku je vždy nastaven na nulu bez ohledu na znaménko posunuté hodnoty.

END Microsoft Specific

Viz také

__ll_rshift
__ull_rshift
Vnitřní funkce kompilátoru