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
Zur zweiten Frage: Ja richtig, nimm doch den Calculator von Windows, der kann hex, bin, dez und oct behandeln und ineinander umrechnen.
vielen Dank für die Antworten. Kurz Frage noch: warum 32bit? Ist 0b1000000000000 nicht nur 12 Bit?
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?
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.
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
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 ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.