Floating point

Reële getallen in binaire vorm moeten in een computer op een speciale manier worden opgeslagen. Computers geven getallen weer als binaire gehele getallen (gehele getallen die machten van twee zijn), dus er is geen directe manier om niet-integere getallen zoals decimalen weer te geven, aangezien er geen radixpunt is. Eén manier waarop computers dit probleem omzeilen is floating-point representatie, waarbij "floating" verwijst naar de manier waarop het radixpunt hoger of lager kan komen te liggen bij vermenigvuldiging met een exponent (macht).


 

Overzicht

In de wiskunde en wetenschap worden zeer grote en zeer kleine getallen vaak vereenvoudigd en tot een macht van tien vermenigvuldigd om ze begrijpelijker te maken. Het kan bijvoorbeeld veel gemakkelijker zijn om 1,2 biljoen te lezen als {\displaystyle 1.2\times 10^{12}} dan 1.200.000.000.000. Dit kan ook worden gebruikt met negatieve machten van tien om kleine getallen te maken, wat betekent dat u 0,000001 kunt weergeven als {\displaystyle 1\times 10^{-6}}. Dit wordt wetenschappelijke notatie genoemd.

Aangezien computers beperkt zijn tot gehele getallen en binaire getallen, betekent dit dat zij fractionele decimale getallen niet gemakkelijk kunnen weergeven. Om fractionele getallen weer te geven, gebruiken computers drie sets binaire getallen om een wetenschappelijke notatie weer te geven. Deze zijn: de getekende bit, die bepaalt of het getal positief (0) of negatief (1) is; de significand, die een gehele (hele) versie van het getal is; en de exponent, die de macht is waarmee u de basis vermenigvuldigt.

Betekenis en

De significand wordt gevonden door uw getal te nemen en het radixpunt te verplaatsen totdat er geen breukdeel meer is, zodat het een geheel getal wordt. In decimale cijfers is dit 1,45 maken tot 145 door de punt 2 stappen naar rechts te verplaatsen, en in binaire cijfers is dit 1101,0111 (13,4375) maken tot 1101 0111 (215) door de punt 4 stappen naar rechts te verplaatsen; in beide gevallen zijn deze getallen niet aan elkaar gerelateerd, behalve door dezelfde cijfers in een vergelijkbare volgorde te gebruiken.

Net zoals de wetenschappelijke notatie de significand zo elementair mogelijk maakt, is het doel bij drijvende-kommagetallen om er een geheel getal van te maken, zodat het in bytes kan worden weergegeven en in berekeningen kan worden gebruikt.

Exponent

De exponent is het aantal cijfers dat het radixpunt is gepasseerd: gaat het naar links dan is de exponent negatief, maar gaat het naar rechts dan is het positief. Zoals hierboven, om van 1,45 145 te maken moet u vermenigvuldigen met 100, dus de exponent is 2 als {\displaystyle 100=10^{2}}. Om van 1101.0111 (13,4375) 1101 0111 (215) te maken, moet u het radixpunt vier kolommen naar rechts verplaatsen, zodat de exponent 4 is; dit kan worden geverifieerd in decimalen als {\displaystyle 215\div 13.4375=16(2^{4})} .

Aangezien het proces omgekeerd is aan de meeste gevallen van wetenschappelijke notatie, aangezien het gaat om het maken van een breuk in een geheel getal in plaats van een groot geheel getal in een breuk, zijn exponenten over het algemeen negatief om het decimaalteken naar links te verplaatsen; in decimaal zou dit betekenen dat u van uw gehele getal 145 weer het breukgetal 1,45 maakt door het te vermenigvuldigen met {\displaystyle 10^{-2}}. In plaats van een getekend meest linkse bit te gebruiken, wordt de exponent vertekend, waardoor 32-bits float exponenten een bereik hebben van {\displaystyle 2^{-126}} tot {\displaystyle 2^{127}}. De uitgangswaarde van de vertekende exponent kan worden gevonden door er 127 bij op te tellen:

{\displaystyle b^{5}=132(5+127)=10000100}

{\displaystyle b^{-5}=122(-5+127)=01111010}

{\displaystyle b^{0}=127(0+127)=01111111}



 

Voorbeeld

Decimaal naar Bicimaal

Laten we bijvoorbeeld aannemen dat we het decimale getal 37,40625 willen weergeven in zijn binaire tegenhanger: een bicimaal getal (of binaire decimaal/fractie). Eerst moeten we ons decimale getal, dat in machten van 10 staat, omzetten naar binair, dat in machten van 2 staat. Een manier om dit te doen is de grootst mogelijke macht van twee af te trekken totdat u bij nul uitkomt:

{\displaystyle 37.40625-\mathbf {32} (2^{5})=5.40625}

{\displaystyle 5.40625-\mathbf {4} (2^{2})=1.40625}

{\displaystyle 1.40625-\mathbf {1} (2^{0})=0.40625}

{\displaystyle 0.40625-\mathbf {0.25} (2^{-2})=0.15625}

{\displaystyle 0.15625-\mathbf {0.125} (2^{-3})=0.03125}

{\displaystyle 0.03125-\mathbf {0.03125} (2^{-5})=0}

Met behulp van de machten van twee hierboven kunnen we ons decimale getal {\displaystyle 37.40625} als volgt weergeven:

Vermogen:

{\displaystyle 2^{5}}

{\displaystyle 2^{4}}

{\displaystyle 2^{3}}

{\displaystyle 2^{2}}

{\displaystyle 2^{1}}

{\displaystyle 2^{0}}

-

{\displaystyle 2^{-1}}

{\displaystyle 2^{-2}}

{\displaystyle 2^{-3}}

{\displaystyle 2^{-4}}

{\displaystyle 2^{-5}}

Waarde:

1

0

0

1

0

1

-

0

1

1

0

1

Bicimaal naar zweven

We hebben vastgesteld dat ons decimale getal {\displaystyle 37.40625} in het binair wordt weergegeven als {\displaystyle 100101.01101} . Het probleem met computers is echter dat zij getallen weergeven als gehele machten van twee met behulp van bits, wat fractionele en negatieve getallen ingewikkeld maakt. In overeenstemming met IEEE-754 is de manier waarop dit gewoonlijk met een computer wordt gedaan het maken van een 32-bits floating point getal dat bestaat uit drie delen: het teken, 1 bit om te bepalen of ons getal positief of negatief is; de exponent, 8 bits om onze exponent weer te geven en waar we 127 bij optellen om gesigneerde bytes te vermijden; en onze significand, die ons binaire getal is zonder bicimaal punt verdeeld over 23 bits. Aangezien we ons bicimale punt 5 plaatsen moeten verplaatsen om van {\displaystyle 100100.01101} de significand {\displaystyle 10010001101} te maken, is onze exponent {\displaystyle 132(5+127)} . Door een 32-bits float te gebruiken kunnen we 37,40625 als volgt weergeven:

Type:

±

Exponent

Betekenis en

Waarde:

0

1

0

0

0

0

1

0

0

0

0

1

0

1

0

1

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

Betekenis:

+

{\displaystyle 2^{7}+2^{2}=132}

{\displaystyle 2^{20}+2^{18}+2^{16}+2^{15}+2^{13}=1,417,216}



 

Gerelateerde pagina's

 

Vragen en antwoorden

V: Wat zijn reële getallen?


A: Reële getallen zijn alle getallen die kunnen worden uitgedrukt als decimaal getal, inclusief fracties en irrationale getallen.

V: Hoe slaan computers binaire getallen op?


A: Computers slaan binaire getallen op als binaire gehele getallen, die machten van twee zijn.

V: Is er een directe manier voor computers om niet-integere getallen zoals decimalen weer te geven?


A: Nee, er is geen directe manier voor computers om niet-integere getallen zoals decimalen weer te geven, omdat er geen radixpunt is.

V: Wat is het doel van floating-point representatie?


A: Met floating-point weergave kunnen computers het probleem van het ontbreken van een radixpunt omzeilen door toe te staan dat het radixpunt hoger of lager komt te liggen bij vermenigvuldiging met een exponent (macht).

V: Wat betekent "zwevend" in floating-point weergave?


A: De term "zwevend" verwijst naar de manier waarop het radixpunt hoger of lager kan bewegen bij vermenigvuldiging met een exponent (macht).

V: Hoe berekent u een exponent (macht)?


A: Een exponent (macht) wordt berekend door een basisgetal een bepaald aantal keren met zichzelf te vermenigvuldigen. Bijvoorbeeld, 2^3 = 8 omdat 2 x 2 x 2 = 8.

AlegsaOnline.com - 2020 / 2023 - License CC3