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


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

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

Синтаксис

ULONGLONG Int64ShrlMod32(
  [in]  ULONGLONG a,
  [in]  DWORD b
);

Параметры

[in] a

Перемещенное 64-разрядное целое число без знака.

[in] b

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

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

Тип: ULONGLONG

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

Замечания

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

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

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

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

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows XP [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 [классические приложения | Приложения UWP]
целевая платформа Виндоус
Заголовок winnt.h (включая Windows.h)

См. также

Int64ShllMod32

Int64ShraMod32

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