Prima di tutto, in realtà non è esatto dirlo
x % 2 == x & 1
Controesempio Semplice: x = -1
. In molte lingue, tra cui Java, -1 % 2 == -1
. Cioè, %
non è necessariamente la tradizionale definizione matematica di modulo. Java lo chiama "operatore resto", per esempio.
Per quanto riguarda l'ottimizzazione bit per bit, solo le potenze modulo di due possono essere "facilmente" eseguite in aritmetica bit per bit. In generale, solo le potenze modulo di base b possono essere "facilmente" eseguite con la rappresentazione dei numeri in base b .
In base 10, ad esempio, per non negativo N
, N mod 10^k
si prendono solo le k
cifre meno significative .
Riferimenti