Я смотрел видео сегодня, и парень на видео просто пишет это, чтобы понять, является ли число четным или нет:
number/2*2 == number ? true : false ;
Я попробовал его, когда вернулся домой, и сравнил с
number % 2 == 0 ? true : false ;
Второй был быстрее, тогда я изменил первый следующим образом:
number>>1<<1 == number ? true : false;
на этот раз сдвиг числа один раз вправо и один раз влево работал быстрее: D Разница в производительности невеликавсего 0-1 секунда для определения всех чисел от 1 до 1000000000, но мне это очень понравилось и я хотел услышать от вас такие трюки.
и что еще?=)
и еще одна идея от Рассела Борогове =)
(number&1) == 0;
Результаты:
Время, прошедшее с и операция: 00: 00: 07.0504033
Время, прошедшее сОперация сдвига: 00: 00: 06.4653698
Время, прошедшее с модом Операция: 00: 00: 06.8323908
Удивительно, что сдвиг в два раза работает быстрее, чем одиночный, и операция на моем компьютере.