Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.
Syntax
ULONGLONG Int64ShrlMod32(
[in] ULONGLONG a,
[in] DWORD b
);
Parameters
[in] a
The unsigned 64-bit integer to be shifted.
[in] b
The shift count in the range 0-31.
Return value
Type: ULONGLONG
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.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows XP [desktop apps | UWP apps] |
Minimum supported server | Windows Server 2003 [desktop apps | UWP apps] |
Target Platform | Windows |
Header | winnt.h (include Windows.h) |