Compartilhar via


Macro Int64ShraMod32 (winnt.h)

Executa uma operação de deslocamento aritmética à direita em um valor inteiro de 64 bits assinado. A função fornece um código de mudança aprimorado para turnos aritméticos à direita em que a contagem de turnos está no intervalo de 0 a 31.

Sintaxe

LONGLONG Int64ShraMod32(
  [in]  LONGLONG a,
  [in]  DWORD b
);

Parâmetros

[in] a

O inteiro de 64 bits assinado a ser deslocado.

[in] b

A contagem de turnos no intervalo de 0 a 31.

Valor de retorno

Tipo: LONGLONG

O valor retornado é o resultado inteiro de 64 bits assinado da operação de deslocamento aritmética direita.

Observações

A contagem de turnos é o número de posições de bit que os bits do valor movem.

Em uma operação de deslocamento aritmética à direita em um valor assinado, os bits do valor se movem para a direita e os bits desocupados no lado esquerdo do valor são definidos como o valor do bit de sinal.

Um compilador pode gerar um código ideal para uma operação de deslocamento aritmética à direita quando a contagem de turnos é uma constante. No entanto, se a contagem de turnos for uma variável cujo intervalo de valores é desconhecido, o compilador deverá assumir o pior caso, levando a um código não ideal: código que chama uma sub-rotina ou código embutido, mas ramifica. Ao restringir a contagem de turnos ao intervalo de 0 a 31, a função Int64ShraMod32 permite que o compilador gere um código ideal ou quase ideal.

Observe que o parâmetro Value da função Int64ShraMod32 e o valor retornado são valores de 64 bits, não LARGE_INTEGER estruturas.

Requisitos

Requisito Valor
Cliente mínimo suportado Windows XP [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo compatível Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
cabeçalho winnt.h (inclua Windows.h)

Consulte também

Int64ShllMod32

Int64ShrlMod32

Inteiros grandes