Gibt es eine semantische Bedeutung, wenn Ergänzung einen and
Betrieb eine Reihe und seine beide tut?Und Nummer und sein Zweier-Komplement
zum Beispiel:
int x = 31;
int result = x & (-x)
Folge hat jede semantische Bedeutung halten?
Gibt es eine semantische Bedeutung, wenn Ergänzung einen and
Betrieb eine Reihe und seine beide tut?Und Nummer und sein Zweier-Komplement
zum Beispiel:
int x = 31;
int result = x & (-x)
Folge hat jede semantische Bedeutung halten?
Das Ergebnis wird ein Bit gesetzt haben, welches in x
das niedrigstwertige Bit gesetzt ist. Anders ausgedrückt, zeigt das Ergebnis, wie „rund“ x
in Bezug auf die Potenzen von 2: 1 für ungerade Zahlen, 2 für ein Vielfaches von 2, 4 für ein Vielfaches von 4 usw.
Dies liegt daran, -x
ist gleich ~x + 1
. x & ~x
0 ist, natürlich, aber von 1 bis ~x
alle der niedrigsten Ordnung 1s in ~x
Zugabe wird 0s werden, und die niedrigste Ordnung 0 in ~x
ein 1 worden, und dies wird das einzige Bit sein, dass x
und ~x + 1
gemeinsam haben.