Tim: Eine Frage zum Bitmuster

Beitrag lesen

Hi,

ich les hier grad rein und kapier es ebenso wenig.

Mask ist erst
100000000000000000000000000000000
dann
010000000000000000000000000000000
dann
001000000000000000000000000000000
usw.

Das wird dann über die Zahl z gelegt die du in diese Funktion rein gibst.

Für mich sieht es so aus, als wäre die Schleife wie folgt, wenn ich z=1 eingäbe:

Erster Durchlauf:
mask: 10000000000000000000000000000000
z   : 00000000000000000000000000000001
--------------------------------------
Das müßte doch schon in Durchlauf 1 alles andere als 0 ergeben?

Ich könnte noch nachvollziehen, wenn nach 32 Durchläufen

11111111111111111111111111111110 herauskäme, aber es kommt ja das genaue Gegenteil raus.

Wo ist denn da _mein_Denkfehler? :-/

Tim

In mask ist immer nur ein Bit nicht 0. z & mask ist also nicht null wenn... ?
Dann wird 1 ausgegeben. Sonst 0.
Gib mal 1, 2, 3.... in diese Funktion rein und schau was dabei raus kommt. Dann kommst du schnell drauf was da passiert. Wär fast schon gemein dir diesen Aha Effekt zu versauen :-)

Übrigens

und kriegt bei der Ausgabe eine 32-stellige Hexadezimale Zahl.
Nein man kriegt eine binäre Zahl.