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


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

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

Синтаксис

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

Параметры

[in] a

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

[in] b

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

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

Тип: ULONGLONG

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

Замечания

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

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

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

Обратите внимание, что параметр Value функции Int64ShllMod32 и возвращаемое значение равно 64-разрядным значениям, а не LARGE_INTEGER структурам.

Требования

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

См. также

Int64ShraMod32

Int64ShrlMod32

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