Maison >développement back-end >C++ >La multiplication et la division utilisant les opérateurs de décalage en C sont-elles vraiment plus rapides ?
En C, des opérateurs au niveau du bit peuvent être utilisés pour effectuer la multiplication et la division, comme illustré ci-dessous :
i*2 = i << 1 i*3 = (i << 1) + i; i*10 = (i << 3) + (i << 1)
Cela soulève la question de savoir si de telles opérations au niveau du bit sont effectivement plus rapides que la multiplication directe ou division.
Réponse courte : Peu probable.
Réponse longue :
Compilateurs modernes utiliser des optimiseurs qui gèrent efficacement la multiplication en fonction de l'architecture du processeur. L'utilisation de la syntaxe standard i*10 permet au compilateur de déterminer la séquence optimale de code assembleur/machine pour votre système. Il est même possible que les instructions de multiplication elles-mêmes soient implémentées en interne à l'aide d'opérations de décalage et d'addition.
Pour plus de clarté et de maintenabilité, il est recommandé d'utiliser les opérateurs appropriés (décalage pour les opérations au niveau du bit, multiplication pour la multiplication) plutôt que d'employer des opérateurs au niveau du bit à des fins arithmétiques. Votre code sera plus facile à comprendre pour les autres et potentiellement également optimisé par le compilateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!