Welches ist schneller ein% 2 oder ein & 1? [Duplikat]
Oct 10 2020
Ich kenne das Prinzip von a&1: zum Beispiel:
4&1: 0100
0001
= 0000
und
5&1: 0101
0001
= 0001
Aber ich möchte wissen, was und wie das Prinzip ist a%2
Welches ist schneller a%2oder a&1?
Antworten
4 P__JsupportswomeninPoland Oct 10 2020 at 22:36
Es gibt zwei Fälle:
- Ganzzahl ohne Vorzeichen. Jeder moderne Compiler kompiliert
x % 2alsx & 1auch ohne die Optimierungen. Die Geschwindigkeit ist also gleich, da beide den gleichen Maschinencode haben. - Ganzzahl mit Vorzeichen - Ergebnis
x % 2und Ergebnis vonx & 1sind völlig unterschiedlich. In diesem Fall solltenx % 2Sie Modulo abrufen undx & 1das LSB testen.https://godbolt.org/z/cEY4dM