Есть ли альтернатива использованию % (модуля) в C/C++?
Если вы вычисляете число cxx по модулю некоторой степени embedded двойки, вы можете использовать c++ побитовый оператор и. Просто cpp вычтите единицу из второго embedded-control числа. Например:
x % 8 == x & 7
x % 256 == x & 255
Несколько embedded-control предостережений:
- Это работает только если второе число является степенью двойки.
- Это эквивалентно только в том случае, если модуль всегда положителен. Стандарты C и C++ не определяют знак модуля, когда первое число отрицательное (пока C++11, который делает гарантирует, что он будет отрицательным, что уже делало большинство компиляторов). Побитовый и избавляется от знакового бита, поэтому он всегда будет положительным (т. Е. Это истинный модуль, а не остаток). Хотя, похоже, это то, чего вы хотите.
- Ваш компилятор, вероятно, уже делает это, когда может, поэтому в большинстве случаев не стоит делать это вручную.
c++
c
modulo
embedded
2021-12-04T03:56:34+00:00
2022-09-29T10:10:38+00:00
wolgaPe
Вопросы с похожей тематикой, как у вопроса:
Есть ли альтернатива использованию % (модуля) в C/C++?
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.