Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage: 0x1000 = 0x00001000?


von Karl W. (Gast)


Lesenswert?

Hi,

bin Anfänger und habe eine kurze Frage: ich finde häufig angaben wie 
0x00001000 zB für Bitmasken. Meine Frage: wäre 0x1000 das selbe und 
warum schreibt man die ganzen Nullen davor? Man könnte statt dessen auch 
0b1000000000000 schreiben, richtig?
MfG
Karl

von user (Gast)


Lesenswert?

um klarzumachen das es 32bit sind

von spontan (Gast)


Lesenswert?

Zur zweiten Frage: Ja richtig, nimm doch den Calculator von Windows, der 
kann hex, bin, dez und oct behandeln und ineinander umrechnen.

von Karl W. (Gast)


Lesenswert?

vielen Dank für die Antworten.
Kurz Frage noch: warum 32bit? Ist 0b1000000000000 nicht nur 12 Bit?

von spontan (Gast)


Lesenswert?

Un wieviel bit sind 0x00001000 ?

von Karl W. (Gast)


Lesenswert?

Auch 12 bit oder etwa nicht?

von spontan (Gast)


Lesenswert?

Das 12. bit ist 1, das ja, ok, aber mehr auch nicht.

von Karl W. (Gast)


Lesenswert?

ich glaube ich verstehe es nicht, es sind doch insgesamt 12 bit 0-11 im 
Zustand 0 und eben das 12 im Zustand 1?
Hast du einen Link wo das ganze nochmal genau erklärt ist?

von Karl H. (kbuchegg)


Lesenswert?

Im täglichen Leben lassen wir normalerweise führende 0-en weg, weil uns 
das zu viel Schreibaufwand ist.

Aber du hast sicher auch zb schon gesehen, dass bei Uhrzeiten zb bei den 
Minuten dann doch führende 0-en geschrieben werden. Wir schreiben 19:04 
und nicht 19:4 um sicher zu gehen, dass der Leser realisiert, dass hier 
wirklich 4 gemeint ist und nicht irrtümlich vierzig und nur die 
'hintere' 0 bei 40 weggelassen wurde.
Das ist also ein Fall, bei dem die führende 0, obwohl mathematisch 
eigentlich irrelevant uns tatsächlich hilft, Situationen zu bereinigen. 
Dadurch, dass wir die Minuten IMMER 2-stellig anschreiben, selbst wenn 
die erste Stelle eine 0 sein sollte, hilft uns das, Fehlinterpretationen 
zu vermeiden. Die führende 0, obwohl mathematisch eigentlich irrelevant, 
trägt dann doch subtil eine Botschaft mit sich.

Sicherlich kennst du auch noch andere Beispiele aus dem täglichen Leben.

und bei 0x00010000 (einer Hexadezimalzahl) schreibt man eben auch die 
führenden 0-en um damit klar zu machen: Hier hast du es mit einer Zahl 
zu tun, die aus 8 Stück Hex-Ziffern besteht, also alles in allem eine 32 
Bit Zahl ist, bei der eben das 12.te Bit eine 1 ist.

Geauso bei Bytes.
Willst du die Bitwerte eines Bytes anschreiben, welches den Wert 5 hat, 
dann schreibst du das in Binäschreibweise als 0b00000101 und stellst die 
einzelnen 8 Stück Bitwerte eines Bytes explizit dar, eben um zu zeigen: 
wir haben es mit einem Byte zu tun. Dieses wiegt schwerer als der 
Schreibaufwand, bzw. eigentlich der weggelassene Schreibaufwand von 
0b101. Der Minderaufwand ist im Vergleich dazu minimal.

von Karl W. (Gast)


Lesenswert?

super vielen vielen Dank für die klasse ausführliche Erklärung zu so 
später Stunde! Nun habe ich es auch endlich kapiert!
Da habe ich doch wirklich ziemlich auf dem Schlauch gestanden.
LG und schönen Abend noch

von nowayback (Gast)


Lesenswert?

Vergiss aber bitte nicht, dass führende Nullen bei normalen Zahlen (kein 
0x, 0b davor) in C dazu führen, dass die Zahl als Oktalzahl 
interpretiert wird. Aus vermeintlicher Optimierung der Lesbarkeit kann 
daraus eine spaßige Fehlersuche werden ;)

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

nowayback schrieb:
> Aus vermeintlicher Optimierung der Lesbarkeit kann
> daraus eine spaßige Fehlersuche werden ;)

Das kann ich bestätigen! Been there, seen it...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.