Laquelle des techniques suivantes est la meilleure option pour diviser un entier par 2 et pourquoi?
Technique 1:
x = x >> 1;
Technique 2:
x = x / 2;
Voici x
un entier.
x = x >>> 1
. Notez également qu'en fonction de la plate-forme et du compilateur, il peut être tout à fait raisonnable d'optimiser manuellement les divisions et les multiplications à l'aide de décalages. - Penser aux microcontrôleurs, par exemple, sans prise en charge directe ALU pour la multiplication.
x /= 2
parce que x >>= 1
ça ressemble trop à une reliure monadique;)
x = x / 2
au lieu de x /= 2
. Préférence subjective peut-être :)
⬜=
combinaisons, celles-ci doivent être utilisées chaque fois que cela est possible. Il supprime le bruit et met l'accent sur le fait qu'il x
est modifié , tandis que l' =
opérateur général suggère plutôt qu'il prenne une valeur complètement nouvelle indépendante de l'ancienne. - Toujours en évitant les opérateurs combinés (pour qu'il soit lisible que quelqu'un qui ne connaît que les opérateurs mathématiques) peut avoir son point aussi, mais vous auriez besoin de renoncer à la très utile ++
, --
, +=
aussi.
x
nouveau le résultat , ni l'un ni l'autre n'est approprié de cette façon: il devrait être l'unx >>= 1
ou l' autrex /= 2
, selon ce que vous avez l'intention d'exprimer avec l'opération. Non pas parce qu'il est plus rapide (tout compilateur moderne compilera toutes les variantes équivalentes à un assemblage identique et rapide de toute façon) mais parce qu'il est moins déroutant.