Welche der folgenden Techniken ist die beste Option, um eine Ganzzahl durch 2 zu teilen, und warum?
Technik 1:
x = x >> 1;
Technik 2:
x = x / 2;
Hier xist eine ganze Zahl.
x = x >>> 1. Beachten Sie auch, dass es je nach Plattform und Compiler durchaus sinnvoll sein kann, Divisionen und Multiplikationen mithilfe von Verschiebungen manuell zu optimieren. - Denken Sie beispielsweise an Mikrocontroller ohne direkte ALU-Unterstützung für die Multiplikation.
x /= 2weil es x >>= 1zu sehr nach monadischer Bindung aussieht;)
x = x / 2statt zu schreiben x /= 2. Subjektive Präferenz vielleicht :)
⬜=Kombinationen haben, sollten diese verwendet werden, wann immer es möglich ist. Es entfernt Rauschen und betont die Tatsache, dass xes geändert wird , während der allgemeine =Operator eher vorschlägt, einen völlig neuen Wert anzunehmen, der vom alten unabhängig ist. - Immer die kombinierten Akteure vermieden werden (so dass es lesbar ist so jemand, der mathematische Operatoren nur weiß) seine Stelle als auch haben, aber dann würden Sie die äußerst nützlich verzichten müssen ++, --, +=auch.
xerneut zuweisen möchten , ist keines auf diese Weise angemessen: Es sollte entwederx >>= 1oder seinx /= 2, je nachdem, was Sie mit der Operation ausdrücken möchten . Nicht weil es schneller ist (jeder moderne Compiler kompiliert sowieso alle äquivalenten Varianten zu identischer, schneller Assemblierung), sondern weil es weniger verwirrend ist.