Макрос Int64ShrlMod32 (winnt.h)
Выполняет операцию логического сдвига вправо для 64-разрядного целочисленного значения без знака. Функция предоставляет улучшенный код сдвига для логических сдвигов вправо, где число сдвигов находится в диапазоне от 0 до 31.
Синтаксис
void Int64ShrlMod32(
[in] a,
[in] b
);
Параметры
[in] a
Сдвигаемое 64-разрядное целое число без знака.
[in] b
Число сдвига в диапазоне от 0 до 31.
Возвращаемое значение
None
Remarks
Число сдвига — это количество позиций битов, которые перемещаются битами значения.
В операции логического сдвига вправо для неподписаного значения биты значения перемещаются вправо, а освобожденные биты в левой части значения задаются равным нулю.
Компилятор может создать оптимальный код для операции логического сдвига вправо, если число сдвигов является константой. Однако если число сдвигов является переменной, диапазон значений которой неизвестен, компилятор должен предположить наихудший случай, что приводит к неоптимальным кодам: коду, который вызывает подпрограмму, или коду, который является встроенным, но ветви. Ограничив число сдвигов диапазоном от 0 до 31, функция Int64ShrlMod32 позволяет компилятору создавать оптимальный или почти оптимальный код.
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | winnt.h (включая Windows.h) |