Поделиться через


Макрос Int64ShrlMod32 (winnt.h)

Выполняет операцию логического сдвига вправо для 64-разрядного целочисленного значения без знака. Функция предоставляет улучшенный код сдвига для логических сдвигов вправо, где число сдвигов находится в диапазоне от 0 до 31.

Синтаксис

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

Параметры

[in] a

Сдвигаемое 64-разрядное целое число без знака.

[in] b

Число сдвига в диапазоне от 0 до 31.

Возвращаемое значение

None

Remarks

Число сдвига — это количество позиций битов, которые перемещаются битами значения.

В операции логического сдвига вправо для неподписаного значения биты значения перемещаются вправо, а освобожденные биты в левой части значения задаются равным нулю.

Компилятор может создать оптимальный код для операции логического сдвига вправо, если число сдвигов является константой. Однако если число сдвигов является переменной, диапазон значений которой неизвестен, компилятор должен предположить наихудший случай, что приводит к неоптимальным кодам: коду, который вызывает подпрограмму, или коду, который является встроенным, но ветви. Ограничив число сдвигов диапазоном от 0 до 31, функция Int64ShrlMod32 позволяет компилятору создавать оптимальный или почти оптимальный код.

Примечание Параметр Value функции Int64ShrlMod32 и возвращаемое значение являются 64-разрядными значениями, а не LARGE_INTEGER структурами.
 

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winnt.h (включая Windows.h)

См. также раздел

Int64ShllMod32

Int64ShraMod32

Большие целые числа