Pertama-tama, sebenarnya tidak tepat untuk mengatakannya
x % 2 == x & 1
Counterexample sederhana: x = -1
. Dalam banyak bahasa, termasuk Java -1 % 2 == -1
,. Artinya, %
belum tentu definisi matematika tradisional dari modulo. Java menyebutnya "operator sisa", misalnya.
Berkenaan dengan pengoptimalan bitwise, hanya dua kekuatan modulo yang dapat "dengan mudah" dilakukan dalam aritmatika bitwise. Secara umum, hanya kekuatan modulo dari basis b yang dapat "dengan mudah" dilakukan dengan representasi angka basis b .
Dalam basis 10, misalnya, untuk non-negatif N
, N mod 10^k
hanya mengambil angka paling signifikan k
.
Referensi