Int64ShrlMod32功能对无符号64位整数值执行正确的逻辑移位操作。该函数为移位计数范围为0 - 31的正确逻辑移位提供了改进的移位代码。
DWORDLONG Int64ShrlMod32(
DWORDLONG 【值】, | //指定无符号64位整数,从逻辑上右移 |
DWORD 【ShiftCount】 | //指定范围0 - 31的班次计数 |
); |
参数
【值】
指定要移位的无符号64位整数。
【ShiftCount】
指定移位计数范围0 - 31。
返回值
返回值是正确的逻辑移位操作的无符号64位整数结果。
备注
移位计数是值的位移动的位位数。
在无符号值的正确逻辑移位操作中,值的位向右移动,并且值左侧的空位被设置为零。
当移位计数为常数时,编译器可以为正确的逻辑移位操作生成最佳代码。但是,如果移位计数是值范围未知的变量,则编译器必须承担最差的情况,导致非最佳代码:调用子例程的代码或内联但分支的代码。通过将移位计数限制在0 - 31范围内,Int64ShrlMod32函数可以让编译器生成最佳或接近最佳代码。
请注意,Int64ShrlMod32函数的【值】参数和返回值是64位值,而不是LARGE_INTEGER结构。
也可以看看