deineRechner
Digitaltechnik

IEEE 754

Gleitkommazahlen in Bitmuster umrechnen und zurück, mit Rechenweg

Format
Richtung

Komma oder Punkt, Exponent mit e (6,02e23), dazu inf und NaN.

Bitmuster

Single (32 Bit): 1 Bit Vorzeichen, 8 Bit Exponent, 23 Bit Mantisse.

Vorzeichen01 Bit, positiv
Exponent100000018 Bit, E = 129, e = 129 − 127 = 2
Mantisse0111 0000 0000 0000 0000 00023 Bit, mit führender 1 davor
Hexadezimal
0x40B80000
Binär
01000000101110000000000000000000

Wert

Art
Normalisiert
Gespeicherter Wert
5,75
Rundungsfehler
0, exakt darstellbar
Exakt gespeicherter Wert
5,75

Rechenweg

  1. Vorzeichen: Die Zahl ist positiv (oder 0), Vorzeichenbit s = 0. Weiter mit dem Betrag.

    s = 0
  2. Ganzzahligen Teil ins Binärsystem umrechnen: fortgesetzt durch 2 teilen, die Reste von unten nach oben gelesen ergeben die Binärzahl.

    5 : 2 = 2 Rest 1
    2 : 2 = 1 Rest 0
    1 : 2 = 0 Rest 1
    5 = 101
  3. Nachkommateil umrechnen: fortgesetzt mit 2 multiplizieren. Die Stelle vor dem Komma ist das nächste Bit, weiter geht es mit dem Rest hinter dem Komma.

    0,75 · 2 = 1,5 → 1
    0,5 · 2 = 1 → 1
    0,75 = 0,11
  4. Normalisieren: das Komma um 2 Stellen nach links schieben, bis genau eine 1 davor steht. Jede Stelle nach links erhöht den Exponenten um 1, nach rechts verringert sie ihn.

    101,11 = 1,0111 · 2^2
  5. Exponent mit Bias speichern: Zum Exponenten wird 127 addiert, damit das Feld keine negativen Zahlen braucht. Dann in 8 Bit binär schreiben.

    2 + 127 = 129
    129 = 128 + 1 = 10000001
  6. Mantisse: die Bits nach der führenden 1 (die 1 selbst wird nicht gespeichert, „hidden bit“), rechts mit Nullen auf 23 Bit aufgefüllt.

    0111 0000 0000 0000 0000 000
  7. Zusammensetzen: Vorzeichen | Exponent | Mantisse. Für die Hex-Schreibweise das Muster in Vierergruppen teilen.

    0 | 10000001 | 01110000000000000000000
    0100 0000 1011 1000 0000 0000 0000 0000
       4    0    B    8    0    0    0    0
    = 0x40B80000

So ist eine Gleitkommazahl aufgebaut

Eine Zahl wird wie in der wissenschaftlichen Schreibweise gespeichert, nur zur Basis 2: Wert = (−1)^s · 1,M · 2^(E − Bias). Das Vorzeichenbit s sagt, ob die Zahl negativ ist. Der Exponent wird mit einem Versatz (Bias 127 bei Single, 1023 bei Double) gespeichert, damit das Feld keine negativen Zahlen braucht. Die Mantisse enthält die Bits nach dem Komma; die führende 1 wird nicht gespeichert („hidden bit“), weil sie bei normalisierten Zahlen immer 1 ist.

Viele Dezimalbrüche wie 0,1 sind im Binärsystem periodisch und werden auf die nächste darstellbare Zahl gerundet (bei Gleichstand auf die mit gerader letzter Stelle). Daher ist 0,1 + 0,2 in Double nicht genau 0,3. Exponent 0 steht für Null und subnormale Zahlen, Exponent alle 1 für Unendlich und NaN.

Werkzeug suchen