Heim >Backend-Entwicklung >C++ >Sind Multiplikation und Division mit Shift-Operatoren in C wirklich schneller?
In C können bitweise Operatoren verwendet werden, um Multiplikation und Division durchzuführen, wie unten dargestellt:
i*2 = i << 1 i*3 = (i << 1) + i; i*10 = (i << 3) + (i << 1)
Da stellt sich die Frage, ob solche bitweisen Operationen tatsächlich schneller sind als die direkte Multiplikation oder Division.
Kurze Antwort:Unwahrscheinlich.
Lange Antwort:
Moderne Compiler Setzen Sie Optimierer ein, die die Multiplikation basierend auf der Prozessorarchitektur effizient verarbeiten. Mithilfe der Standard-i*10-Syntax kann der Compiler die optimale Assembly-/Maschinencode-Sequenz für Ihr System ermitteln. Es ist sogar möglich, dass Multiplikationsanweisungen selbst intern mithilfe von Verschiebungs- und Additionsoperationen implementiert werden.
Aus Gründen der Übersichtlichkeit und Wartbarkeit wird empfohlen, die entsprechenden Operatoren zu verwenden (Verschiebung für bitweise Operationen, Multiplikation). zur Multiplikation), anstatt bitweise Operatoren für arithmetische Zwecke zu verwenden. Ihr Code wird für andere leichter verständlich und möglicherweise auch vom Compiler optimiert.
Das obige ist der detaillierte Inhalt vonSind Multiplikation und Division mit Shift-Operatoren in C wirklich schneller?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!