Разница между использованием% и получением младшего разряда для нечетного / четного - PullRequest
0 голосов
/ 01 июня 2018

Мне было интересно, какая разница в использовании % и получении младшего значащего бита числа, чтобы узнать, является ли он нечетным или четным.

с использованием % было бы что-то вроде

  • n % 2 == 0 В этом случае n является четным числом
  • n % 2 == 1 В этом случае n является нечетным числом

Использование младшего значащего бита

  • n & 1 == 0 В этом случае n является четным числом
  • n & 1 == 1 В этом случае n является нечетным числом

Использует ли % быстрее, чем младший значащий бит числа?

1 Ответ

0 голосов
/ 01 июня 2018

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

Использование больших чисел ограничено:

            32 bit                   64 bit
----  -------------  --------------------------------------------
min    -2147483648    -9007199254740991   Number.MIN_SAFE_INTEGER
max     2147483647     9007199254740991   Number.MAX_SAFE_INTEGER
...