Binärzahl in Dezimalzahl umwandeln: Woher kommt die 0000 am Anfang?
Ich lese gerade ein Buch, in dem unter anderem die Zahl 862929 in die Binärzahl umgewandelt werden soll. Soweit so gut, idR teilt man ja immer wieder durch 2 und schreibt dann jeweils Rest 0 oder Rest 1 auf.
Als Ergebnis habe ich 11010010101011010001 rausbekommen. Der Autor schreibt aber 00001101 00101010 11010001. Mir ist aufgefallen, dass das Ergebnis nahezu identisch ist, nur dass er 0000 am Anfang seines Ergebnisses einfügt, warum genau macht er das und woher weiss ich, wann ich das so handhaben muss? Theoretisch könnte man die 0000 doch auch ans Ende der Binärzahl einfügen.
Ich habe die "Vermutung", dass es daran liegt, dass im Beispiel ein 8-Bit Computer verwendet werden soll. Da ich 20 Ziffern in meinem Ergebnis habe, müsste ich die restlichen Ziffern füllen, da 20 nicht durch 8 teilbar ist, also 3*8=24, deshalb am Anfang die 0000. Ist das korrekt? Und ist mein Ergebnis in dem Fall falsch oder nur unsauber formuliert?
6 Antworten
Die 4 0en auf der linken Seite werden eingefügt um die Zahl zu vollen 8er Gruppen aufzufüllen, diese Schreibart kommt wie du schon vermutet hast daher dass 8 Bit ein Byte ergeben.
Die 4 0en ändern nichts am Wert der Zahl.
Jop, darum sind da auch leerzeichen.
In der regel speichert man das in ganzen bytes und befüllt den rest einfach mit Nullen. Der computer liest das nur in ganzen bytes aus. (zumindest computer der letzten 50 jahre)
Theoretisch könnte man die 0000 doch auch ans Ende der Binärzahl einfügen.
Mit "Ende" meinst Du rechts von der Zahl?
Man kann vieles tun, aber rechne mal durch, was die Binärzahl dann im Dezimalsystem bedeuten würde. Spoiler: Nicht das, was Du eingangs hattest.
Das Binärsystem ist nichts grob verschiedenes zu den anderen Zahlensystemen, die sind im Wesentlichen alle gleich. Der Unterschied ist die Basis, bei Binär ist es 2, bei Dezimal ist es 10.
Das Prinzip bleibt aber gleich. Überleg dir mal, wie Du im Dezimalsystem rechnest und tu so, als hättest Du nur zwei zahlen: 0 und 1. Es funktioniert exakt genauso.
Und bei jedem anderen Zahlensystem gilt eben so:
Vorne bzw. links stehende Nullen sind egal.
Tatsächlich (und da liegt vermutlich dein Verständnisproblem) ist aber rechts der Anfang und links das Ende der Zahl, genau wie auch beim Dezimalsystem. Mit "Ende" ist dabei aber nicht die Reihenfolge, in der Du einen Text lesen würdest, gemeint, sondern die höchste Stelle in der Zahl. Z.B. ist bei 2019 die 2 die höchste Stelle und auch das "Ende" der Zahl. Und ich kann so viele 0en anhängen, wie ich will, 000000000002019 bleibt immer noch 2019.
Beim Binärsystem ergänzt man sie einfach, um immer volle Bytes (8 Bit) anzugeben. Wenn man sie dann noch gruppiert (immer 4 oder 8 Bit getrennt durch ein Leerzeichen), ist es gleich viel leichter, die Zahl zu lesen, da sie so lang ist.
Macht man beim Dezimalsystem auch, da ist es das 1000er-Trennzeichen, im Deutschen ein Punkt.
Theoretisch könnte man die 0000 doch auch ans Ende der Binärzahl einfügen.
Könnte man, aber das wäre falsch.
Nimm die Dezimalzahl 123.
Das ist das Gleiche wie 000123, aber etwas völlig anderes als 123000
Nein, es liegt nicht daran, dass es um einen 8 Bit Computer/Prozessor geht, sondern darum, dass (mit ein paar wenigen Ausnahmen) jeder Computer Daten in Bytes zu je 8 Bit speichert.
P.S.: Eigentlich wäre 00000000 00001101 00101010 11010001 noch "korrekter", da die klassischen Ganzzahltypen 8, 16, 32 oder 64 Bit groß sind und die vorliegende Zahl mehr als 16 aber weniger oder gleich 32 Bit benötigt.
Ja, habe ich inzwischen auch bemerkt, dumme Idee 😂 Vielen Dank!