J'ai vu l'élu réponse à ce poste .
J'ai été surpris que (x & 255) == (x % 256)
si x est un entier non signé, je me suis demandé s'il était judicieux de toujours remplacer %
avec &
sur x % n
pour n = 2^a (a = [1, ...])
et x étant un nombre entier positif.
Il s'agit d'un cas particulier dans lequel je peux décider en tant qu'humain, car je sais avec quelles valeurs le programme va traiter et le compilateur ne le sait pas. Puis-je obtenir un gain de performance significatif si mon programme utilise beaucoup d'opérations modulo ?
Bien sûr, je pourrais juste compiler et regarder le désassemblage. Mais cela ne répondrait à ma question que pour un seul compilateur/architecture. J'aimerais savoir si cela est en principe plus rapide.