Tout d'abord, il n'est pas exact de dire que
x % 2 == x & 1
Simple contre - : x = -1
. Dans de nombreuses langues, y compris Java, -1 % 2 == -1
. Autrement dit, %
n'est pas nécessairement la définition mathématique traditionnelle de modulo. Java l'appelle par exemple "opérateur de reste".
En ce qui concerne l'optimisation au niveau du bit, seules les puissances modulo de deux peuvent "facilement" être effectuées en arithmétique au niveau du bit. D'une manière générale, seules les puissances modulo de base b peuvent "facilement" être réalisées avec une représentation en base b des nombres.
En base 10, par exemple, pour non-négatif N
, N mod 10^k
prend juste les k
chiffres les moins significatifs .
Références