Wolfgang Pavel:
Zuse Z22: Dokumentation und Simulation
Darstellung von Gleitkommazahlen (Floats, Reals)

Gleitkommazahlen, heute mit »Gleitpunktzahlen«, »Float« oder »Real« bezeichnet, werden in der externen Schreibweise des Freiburger Codes mit Dezimalkomma und nicht, wie heute im technischen Bereich üblich, mit Dezimalpunkt geschrieben werden.

Gleitkommazahlen werden in der Z22, wie es auch heute noch üblich ist, durch 2 Teile dargestellt: einem Mantissenteil (hier M genannt) und einem Exponententeil (hier E genannt).

M und E sind hier nicht dasselbe wie mathematisch Mantisse und Exponent der Zahl, wie sich aus dem Folgenden ergibt.

Rechnerisch ist M eine Zahl zwischen ½ (einschließlich) und 1 (ausschließlich) also ½ ≤ M < 1.
E ist eine ganze Zahl von 0 bis 127, also 0 ≤ E ≤ 127.

In einem Maschinenwort mit 38 Bits wird eine Gleitkommazahl mit diesen beiden Teilen abgelegt

entweder für positive Gleitkommazahlen:

Inhalt 00 1... Mantisse (M) Exponent (E)
Bit Nr. 12 3–31 32–38

oder für negative Gleitkommazahlen:

Inhalt 11 0... Mantissenkomplement (1 - M) Exponent (E)
Bit Nr. 12 3–31 32–38

Dabei hat von den Bits 3 bis 31 das n-te Bit den Stellenwert 2-n+2, also das 3. Bit den Stellenwert ½, das 4. den Stellenwert ¼, usw.

Der tatsächliche Wert der Zahl ist
bei positiven Gleitkommazahlen +M•2E-64
bei negativen Gleitkommazahlen −M•2E-64

Aus der Darstellung ergibt sich, dass der größtmögliche Betrag einer Gleitkommazahl (dezimal) 0,858993459•1019 sein kann. Größere Gleitkommazahlen führen zu einem Bereichsüberschreitungs-Fehler (»BUEB«).

Als betragsmäßig kleinste Gleitkommazahl ist (dezimal) 0,343597384•10-19 darstellbar. Betragsmäßig kleinere Zahlen werden als Null interpretiert und dargestellt.

Die Genauigkeit, 29 Dualstellen für die Mantisse, entspricht etwa 9 Dezimalstellen.

Es ist nahezu zwangsläufig, dass das 3. Bit immer das Gegenteil der Bits 1 und 2 ist. Lediglich die Zahlen - ½ • 2E-64 (für beliebige E) ergeben die Darstellung:

Inhalt 111 0...0E
Bit Nr. 1234–3132–38

Deshalb ist diese Information trotz der 3 Eins-Bits am Anfang keine Strichzahl.