Condividi tramite


Macro Int64ShraMod32 (winnt.h)

Esegue un'operazione di spostamento aritmetica a destra su un valore intero a 64 bit con segno. La funzione fornisce un codice di spostamento migliorato per i turni aritmetici a destra in cui il conteggio dei turni è compreso nell'intervallo 0-31.

Sintassi

void Int64ShraMod32(
  [in]  a,
  [in]  b
);

Parametri

[in] a

Intero con segno a 64 bit da spostare.

[in] b

Conteggio dei turni nell'intervallo 0-31.

Valore restituito

nessuno

Osservazioni

Il conteggio dei turni è il numero di posizioni di bit spostate dai bit del valore.

In un'operazione di spostamento aritmetico a destra su un valore firmato, i bit del valore vengono spostati a destra e i bit liberati sul lato sinistro del valore vengono impostati sul valore del bit del segno.

Un compilatore può generare codice ottimale per un'operazione di spostamento aritmetica a destra quando il conteggio dei turni è una costante. Tuttavia, se il conteggio dei turni è una variabile il cui intervallo di valori è sconosciuto, il compilatore deve presupporre il peggiore dei casi, causando codice non ottimale: codice che chiama una subroutine o codice inline ma rami. Limitando il numero di turni all'intervallo 0-31, la funzione Int64ShraMod32 consente al compilatore di generare codice ottimale o quasi ottimale.

Si noti che il parametro Value della funzione Int64ShraMod32 e il valore restituito sono valori a 64 bit, non LARGE_INTEGER strutture.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winnt.h (include Windows.h)

Vedi anche

Int64ShllMod32

Int64ShrlMod32

Numeri interi di grandi dimensioni