45 ist 101101 im Binärformat und das ist in Ordnung. Aber wie haben sie die 0,25 als 0,01 erhalten?
Karl Norum
Einfacher Stellenwert. In Basis 10 haben Sie diese Orte:
… 103 102 101 100. 10-1 10-2 10-3 …
… Tausender, Hunderter, Zehner, Einer . Zehntel, Hundertstel, Tausendstel …
In ähnlicher Weise haben Sie in Binär (Basis 2) Folgendes:
… 23 22 21 20. 2-1 2-2 2-3 …
… Achter, Vierer, Zweier, Einer . Hälften, Viertel, Achtel …
Also der zweite Platz nach dem . in binär sind Einheiten von 2-2die Ihnen gut als Einheiten von 1/4 (oder alternativ 0,25) bekannt sind.
+1, obwohl ich es ein bisschen humorvoll fand, die binären Stellen als “Achter, Vierer …” zu bezeichnen, wenn es nie mehr als einen dieser Werte pro Stelle gibt.
– David Kaczyński
8. März 2013 um 16:00 Uhr
@David, das ist ein guter Punkt. Ich schwafelte darüber, was ich dort tun sollte, aber ich ging mit dem Plural, um dem allgemeinen Dezimalgebrauch zu entsprechen, hoffentlich um die Erklärung leicht verständlich zu machen.
– Karl Norum
8. März 2013 um 16:54 Uhr
mkataja
Sie können den Teil nach dem Dezimalkomma in eine andere Basis umwandeln, indem Sie wiederholt mit der neuen Basis multiplizieren (in diesem Fall ist die neue Basis 2), wie folgt:
0.25 * 2 = 0.5
-> Die erste Binärziffer ist 0 (nehmen Sie den ganzzahligen Teil, dh den Teil vor dem Komma).
Multipliziere weiter mit dem Teil nach dem Komma:
0.5 * 2 = 1.0
-> Die zweite Binärziffer ist 1 (wieder den ganzzahligen Teil nehmen).
Hier hören wir auch auf, weil der Teil nach dem Komma jetzt Null ist, also nichts mehr zu multiplizieren ist.
Daher ist die endgültige binäre Darstellung des Bruchteils: 0,012.
Bearbeiten:
Es ist auch erwähnenswert, dass die binäre Darstellung ziemlich oft unendlich ist, selbst wenn mit einem endlichen Bruchteil zur Basis 10 begonnen wird. Beispiel: Konvertieren von 0,210 zu binär:
Wenn wir mit 45,25 beginnen, ist das größer/gleich als 32, also addieren wir eine binäre 1 und subtrahieren 32.
Uns bleibt 13,25, was kleiner als 16 ist, also fügen wir eine binäre 0 hinzu.
Uns bleibt 13,25, was größer/gleich 8 ist, also addieren wir eine binäre 1 und subtrahieren 8.
Uns bleibt 05.25, was größer/gleich 4 ist, also addieren wir eine binäre 1 und subtrahieren 4.
Uns bleibt 01.25, was kleiner als 2 ist, also fügen wir eine binäre 0 hinzu.
Uns bleibt 01.25, was größer/gleich 1 ist, also addieren wir eine binäre 1 und subtrahieren 1.
Mit ganzen Zahlen hätten wir null übrig, also hören wir auf. Aber:
Uns bleibt 00,25, was kleiner als 0,5 ist, also fügen wir eine binäre 0 hinzu.
Uns bleibt 00,25, was größer/gleich 0,25 ist, also addieren wir eine binäre 1 und subtrahieren 0,25. Jetzt wir haben null, also hören wir auf (oder nicht, du kannst ewig weitermachen und Nullen berechnen, wenn du willst)
Beachten Sie, dass nicht alle “einfachen” Dezimalzahlen immer diesen Nullpunkt erreichen. 0,1 (dezimal) konvertiert in die Basis 2, wiederholt sich unendlich: 0,0001100110011001100110011 … Alle “einfachen” Zahlen im Binärformat werden jedoch immer gut in die Basis 10 konvertiert.
Sie können den gleichen Vorgang auch mit gebrochenen (2,5), irrationalen (pi) oder sogar imaginären (2i) Basen durchführen, außer dass die Basis nicht zwischen -1 und 1 einschließlich liegen kann.
Aber wir können keine imaginären Zahlen vergleichen, oder?
@Rotsor & Mooing Duck: Rotsor hat Recht in dem Sinne, dass die mathematischen Ungleichungen (<, >, <=, >=) für komplexe Zahlen nicht definiert sind. Eine Möglichkeit, das Problem zu umgehen, wäre die Verwendung von Knuths viertelimaginärer Basis, da komplexe Zahlen in einem einzigen Term in dieser Basis geschrieben werden können (Beispiel 7 + 4i (Basis 10) = 10323 (Basis 2i)). Die Vergleiche in Dezimalbasis würden jedoch nicht immer die gleichen Ergebnisse wie in viertel-imaginär liefern. Zum Beispiel: 0 > -4 (Basis 10), während 0 < 1000 (Basis 2i). (-4 (Basis 10) = 1000 (Basis 2i))
– Nijoakim
5. April 2014 um 16:59 Uhr
@nijoakim: Gut zu wissen, dass mathematische Ungleichungen nicht definiert sind und dass der “offensichtliche” Weg nicht mit Vergleichen rationaler Zahlen übereinstimmt. Ich bleibe jedoch bei meiner Überzeugung, dass es wahrscheinlich einen sinnvollen Weg gibt.
– Muhende Ente
5. April 2014 um 17:15 Uhr
@MooingDuck: Ja, ich stimme zu, dass das durchaus möglich ist. Ich habe tatsächlich versucht, einen herauszufinden, seit Sie dies gepostet haben, aber es stellte sich als ziemlich schwierig heraus.
– Nijoakim
5. April 2014 um 18:45 Uhr
2.00010 = 2+1 = 10.0002
1.00010 = 2+0 = 01.0002
0,50010 = 2-1 = 00.1002
0,25010 = 2-2 = 00.0102
0,12510 = 2-3 = 00.0012
Die Brüche zur Basis 2 sind 0,1 = 1/2, 0,01 = 1/4. …
Das Teilen durch 2 Zoll (Basis 2) verschiebt das Dezimalkomma einen Schritt nach links, auf dieselbe Weise verschiebt das Teilen durch 10 Zoll (Basis 10) das Dezimalkomma einen Schritt nach links. Im Allgemeinen verschiebt das Dividieren durch M in (Basis M) das Dezimalkomma um einen Schritt nach links.