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


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

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

Синтаксис

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

Параметры

[in] a

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

[in] b

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

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

None

Remarks

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

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

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

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

Требования

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

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

Int64ShllMod32

Int64ShrlMod32

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