Tobias22: Eine Frage zum Bitmuster

Beitrag lesen

Hallo Forum,

ich versuche gerade eine Aufgabe (C-Programmierung) zu lösen, wo man u.a. einen Code erklären soll.

Mir ist klar, dass es sich beim Gesamt-Code um Bitmuster und Schiebeoperatoren handelt. Man gibt eine Zahl ein und kriegt bei der Ausgabe eine 32-stellige Hexadezimale Zahl.

Die folgende Zeilen verstehe ich aber nicht ganz:

unsigned int mask = 01 << 31;
Recherche: "01 << 31" soll die Bits um n Stellen nach links schieben und rechts Nullen auffüllen.

while (i>=0) {
if ((z&mask) !=0)
Recherche: "(z&mask)" soll UND-Operation simultan auf jedes Bit anwenden und ein neues Bitmuster als Wert liefern.

mask >>= 1;}
Recherche: "mask >>= 1" soll eine Zuweisung nach Rechtsverschiebung sein.

Ich kann leider trotzdem nicht nachvollziehen, was das alles bedeutet und wie das Ganze funktioniert.

Könnte mir das jemand erklären?

Tobias

P.S. Ich suche keine fertige Lösung, sondern möchte einfach das Prinzip zu verstehen.