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 ???
Denken Sie zuerst in Dezimalzahlen (Basis 10): 643.72 ist:
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:
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%Die Mantisse ist im Wesentlichen um den Exponenten verschoben.
%Vor%Sie möchten das lesen - IEEE 754-1985
Der aktuelle Standard ist hier
Tags und Links types floating-point ieee-754