wie IEEE-754 Gleitkommazahlen funktionieren

7

Sagen wir, ich habe das:

%Vor%

binär, wird dieser Gleitkomma als dargestellt:

0 01111111 10000000000000000000000

Ich habe die Binärdatei zerlegt, um die Blöcke 'signed', 'exponential' und 'fraction' darzustellen.

Was ich nicht verstehe, ist, wie dies 1.5 darstellt.

Der Exponent ist 0, sobald Sie den Bias (127 - 127) subtrahieren, und der Bruchteil mit dem impliziten führenden ist 1.1.

Wie skaliert 1.1 mit nichts = 1.5 ???

    
sepiroth 25.04.2010, 01:49
quelle

4 Antworten

23

Denken Sie zuerst in Dezimalzahlen (Basis 10): 643.72 ist:

  • (6 * 10 2 ) +
  • (4 * 10 1 ) +
  • (3 * 10 0 ) +
  • (7 * 10 -1 ) +
  • (2 * 10 -2 )

oder 600 + 40 + 3 + 7/10 + 2/100.

Das liegt daran, dass n 0 immer 1 ist, n -1 ist dasselbe wie 1 / n (für einen speziellen Fall) und n -m ist identisch mit 1 / n m (für den allgemeineren Fall).

Ähnlich ist die Binärzahl 1.1:

  • (1 * 2 0 ) +
  • (1 * 2 -1 )

wobei 2 0 eins ist und 2 -1 die Hälfte ist.

In Dezimalzahlen haben die Zahlen links vom Dezimalpunkt die Multiplikatoren 1, 10, 100 usw., die vom Dezimalkomma nach links und 1/10, 1/100, 1/1000 nach rechts weisen (dh 10 2 , 10 1 , 10 0 , Dezimalpunkt, 10 -1 , 10 -2 , ...).

In base-2 haben die Zahlen links vom Binärpunkt Multiplikatoren 1, 2, 4, 8, 16 und so weiter nach links. Die Zahlen auf der rechten Seite haben Multiplikatoren 1/2, 1/4, 1/8 usw. nach rechts.

Also zum Beispiel die Binärzahl:

%Vor%

entspricht:

%Vor%

oder:

%Vor%     
paxdiablo 25.04.2010, 01:52
quelle
7

1,1 binär ist 1 + .5 = 1.5

    
pavpanchekha 25.04.2010 01:52
quelle
0

Die Mantisse ist im Wesentlichen um den Exponenten verschoben.

%Vor%     
drawnonward 25.04.2010 02:27
quelle
0

Sie möchten das lesen - IEEE 754-1985

Der aktuelle Standard ist hier

    
Romain Hippeau 25.04.2010 01:55
quelle

Tags und Links