Bit Manipilation !
-
Hi zusammen,
ich habe gelesen daß man mit dem Bitoperator und (&) gezielt eine Auswahl von Bits löschen kann.
Beispielsweise löscht :n = n & 0177;
in n alle Bits außer der letzten Sieben.
Aber wie bzw. warum nicht die letzte Sieben?Ich kenne die Wahrheitstabelle für AND :
1 1 1
1 0 0
0 1 0
0 0 0aber wie geht's jetzt logisch weiter mit dem löschen der Bits, könnt Ihr mir da weiterhelfen ?
Gruß
Questioneer
-
n 1 0 1 0 1 0 1 0 & 0177 0 1 1 1 1 1 1 1 = 0 0 1 0 1 0 1 0
EDIT:
Verschreiber, ist auch nicht so wichtig.
-
TyRoXx schrieb:
1 & irgendwas ergibt 1
naja, 1 & irgendwas ergibt irgendwas.
-
Hi,
wenn man annimmt daß n = 10101010 und die 0177 = 10110001 (binär) dann ergibt sich nach einer AND verknüpfung:
n = 1 0 1 0 1 0 1 0
0177 = 1 0 1 1 0 0 0 1
--------------------------------
1 0 1 0 0 0 0 0wo bleibt da irgendwas gleich???
Wie kommst Du drauf daß 0177 = 01111111 ist?
Gruß
Questioner
-
Questioneer schrieb:
...daß 0177 = 01111111 ist?
wegen der 0 vorne dran ist es in C eine oktalzahl.
-
AAAArrrrgggssss !!!
Danke frickyGruß
Questioneer