Macro Int64ShraMod32 (winnt.h)

Realiza una operación de desplazamiento aritmético derecho en un valor entero de 64 bits con signo. La función proporciona un código de desplazamiento mejorado para los desplazamientos aritméticos correctos en los que el recuento de desplazamientos está en el intervalo 0-31.

Sintaxis

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

Parámetros

[in] a

Entero de 64 bits con signo que se va a desplazar.

[in] b

Recuento de turnos en el intervalo 0-31.

Valor devuelto

None

Observaciones

El recuento de desplazamientos es el número de posiciones de bits que mueven los bits del valor.

En una operación de desplazamiento aritmético a la derecha en un valor con signo, los bits del valor se mueven a la derecha y los bits vacíos del lado izquierdo del valor se establecen en el valor del bit de signo.

Un compilador puede generar código óptimo para una operación de desplazamiento aritmética correcta cuando el recuento de desplazamientos es una constante. Sin embargo, si el recuento de desplazamientos es una variable cuyo intervalo de valores es desconocido, el compilador debe asumir el peor de los casos, lo que conduce a código no óptimo: código que llama a una subrutina o código insertado pero bifurcaciones. Al restringir el recuento de desplazamientos al intervalo 0-31, la función Int64ShraMod32 permite al compilador generar código óptimo o casi óptimo.

Tenga en cuenta que el parámetro Value de la función Int64ShraMod32 y el valor devuelto son valores de 64 bits, no LARGE_INTEGER estructuras.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winnt.h (incluye Windows.h)

Consulte también

Int64ShllMod32

Int64ShrlMod32

Enteros grandes