Assembling Pi

B.2 Erweiterungen der CPU-Funktionalität

2.3.2 VFP und NEON: Gleitkommazahlen

Aufbau einer binären Gleitkommazahl:

... + x1 * 2^3 + x2 * 2^2 + x3 * 2^1 + x4 * 2^0 . (Radixpunkt) + x5 * 2^(-1) + x6 * 2^(-2) + x7 * 2^(-3) + ...

Um eine dezimale Gleitkommazahl in eine binäre Gleitkommazahl umzuwandeln, ist es wichtig, den Vorkommateil und den Nachkommanteil der Zahl getrennt zu behandeln.

1. Umwandlung des Vorkommateils

Der Vorkommateil einer Zahl wird nach demselben Verfahren konvertiert, das auch bei der Umwandlung einer ganzen Dezimalzahl in eine Binärzahl verwendet wird. Dieser Prozess lässt sich in den folgenden Schritten zusammenfassen:

Beispiel: Die Dezimalzahl 13 wird wie folgt in eine binäre Zahl konvertiert:

Die Restwerte ergeben von unten nach oben gelesen die Zahl 1101. Somit ist 13 in Binär 1101.

2. Umwandlung des Nachkommanteils

Der Nachkommateil einer Dezimalzahl wird anschließend folgendermaßen in eine Binärzahl umgewandelt:

Beispiel: Für die Dezimalzahl 0.375 wird das Verfahren wie folgt angewendet:

Das Ergebnis ist 0.011 in Binär.

3. Zusammensetzen der binären Gleitkommazahl

Nach der Umwandlung des Vorkommateils und des Nachkommanteils in Binär werden beide Teile kombiniert, um die gesamte binäre Gleitkommazahl zu erhalten.

Beispiel: Die Dezimalzahl 13.375 besteht aus dem Vorkommateil 13 und dem Nachkommanteil 0.375. Die binäre Darstellung lautet:

Das Ergebnis ist 1101.011 in Binär.

Diese Methode stellt eine exakte binäre Darstellung der Zahl dar und unterscheidet sich vom Floating-Point-Format, das in Computern zur Speicherung von Gleitkommazahlen verwendet wird. Im Floating-Point-Format werden zusätzlich ein Exponent und eine Mantisse berücksichtigt, was bei dieser Umwandlung noch nicht der Fall ist.

zurück Hauptmenü weiter
2.3 VFP und NEON
2.3.1 Intro
2.3.2 Gleitkommazahlen
2.3.3 Floating Point Format nach IEEE 754
2.3.4 VFP (Vector Floating Point) in der ARM-Architektur
2.3.5 VFP Data Conversion Befehle
2.3.6 Was ist NEON?
2.3.7 Überblick über die ARMv7 NEON-Register
2.3.8 Vektoren und Skalare
2.3.9 Registeradressierung in NEON
2.3.10 Das NEON und Floatingpoint Status Register
2.3.11 Steuerung und Statusübertragung zwischen ARM- und NEON/VFP-Statusregistern (VMSR und VMRS)
2.3.12 NEON Instruktionen
2.3.13 Datentransfer
2.3.14 NEON Load/Store Instruktionen
2.3.15 Arithmetische und logische NEON-Operationen
2.3.16 VTRN (Vector Transpose) Instruktionen
2.3.17 Implementierung von Trigonometrischen Funktionen
2.3.18 Implementierung einer 4x4-Matrixmultiplikationsfunktion mit NEON