Стоило ли этого ожидать [code]flag = (age < 0) | (age > 100) [/code] будет выполняться быстрее, чем [code]flag = (age < 0) || (age > 100) [/code] поскольку поток управления в || оператор замедляет конвейерную обработку инструкций? См. «Ветви» на https://en.wikipedia.org/wiki/Instruction_pipelining#Branches
Занимают ли побитовые операторы, такие как & (AND), больше времени, чем обычные циклы for?
Сегодня я отвечал на вопрос о степени двойки в LeetCode. Мой код был таким:
if (n > 0 && (n & (n - 1)) == 0) {
return true;
}
return false;
Я читаю C++ Primer, и меня слегка смутили несколько комментариев, в которых говорится о том, как побитовые операторы работают со знаковыми типами. Процитирую:
Цитата №1
(Если говорить о побитовых операциях) «Если операнд подписан и
его значение...
Можно ли использовать оператор препроцессора OR или AND? У меня есть код, который я хочу запустить под тегами _DEBUG или _UNIT_TEST(?).
Я хочу что-то вроде следующего:
#if _DEBUG || _UNIT_TEST
// Code here
#endif