Int64ShrlMod32
The Int64ShrlMod32
function performs a right logical shift operation on an unsigned 64-bit integer
value. The function provides improved shifting code for right logical shifts
where the shift count is in the range 0 - 31.
DWORDLONG Int64ShrlMod32(
DWORDLONG Value, |
// specifies
unsigned 64-bit integer to shift right logically |
DWORD ShiftCount |
// specifies a
shift count in the range 0 -
31 |
); |
|
Parameters
Value
Specifies the
unsigned 64-bit integer to be shifted.
ShiftCount
Specifies a
shift count in the range 0 -
31.
Return Values
The return
value is the unsigned 64-bit integer result of the right logical shift operation.
Remarks
The shift
count is the number of bit positions that the value s bits move.
In a right
logical shift operation on an unsigned value, the value s bits move to the
right, and vacated bits on the left side of the value are set to zero.
A compiler
can generate optimal code for a right logical shift operation when the shift
count is a constant. However, if the shift count is a variable whose range of
values is unknown, the compiler must assume the worst case, leading to
non-optimal code: code that calls a subroutine, or code that is inline but
branches. By restricting the shift count to the range 0 - 31, the Int64ShrlMod32 function lets the
compiler generate optimal or near-optimal code.
Please note
that the Int64ShrlMod32 function s Value parameter and return value
are 64-bit values, not LARGE_INTEGER structures.
See Also