logo

IEEE Standard 754 Floating Point Numbers

IEEE Standard for Floating-Point Arithmetic (IEEE 754) er en teknisk standard for flydende kommaberegning, som blev etableret i 1985 af Institute of Electrical and Electronics Engineers (IEEE) . Standarden adresserede mange problemer fundet i de forskellige floating point-implementeringer, der gjorde dem vanskelige at bruge pålideligt og reducerede deres portabilitet. IEEE Standard 754 flydende komma er den mest almindelige repræsentation i dag for reelle tal på computere, inklusive Intel-baserede pc'er, Mac'er og de fleste Unix-platforme.

Der er flere måder at repræsentere et flydende kommanummer på, men IEEE 754 er den mest effektive i de fleste tilfælde. IEEE 754 har 3 grundlæggende komponenter:



  1. Tegnet på Mantissa -
    Dette er så simpelt som navnet. 0 repræsenterer et positivt tal, mens 1 repræsenterer et negativt tal.
  2. Den skæve eksponent –
    Eksponentfeltet skal repræsentere både positive og negative eksponenter. En bias tilføjes til den faktiske eksponent for at få den lagrede eksponent.
  3. Den normaliserede mantisse –
    Mantissen er en del af et tal i videnskabelig notation eller et flydende kommatal, der består af dets signifikante cifre. Her har vi kun 2 cifre, altså O og 1. Så en normaliseret mantisse er en med kun et 1 til venstre for decimalen.

IEEE 754-numre er opdelt i to baseret på ovenstående tre komponenter: enkelt præcision og dobbelt præcision.




TYPER SKILT FORSIGTIG EKSPONENT NORMALISERET MANTISA PARTISKHED
Enkel præcision 1 (31. bit) 8(30-23) 23(22-0) 127
Dobbelt præcision 1 (63. bit)



11(62-52) 52(51-0) 1023

Eksempel –

85.125 85 = 1010101 0.125 = 001 85.125 = 1010101.001 =1.010101001 x 2^6 sign = 0 1. Single precision: biased exponent 127+6=133 133 = 10000101 Normalised mantisa = 010101001 we will add 0's to complete the 23 bits The IEEE 754 Single precision is: = 0 10000101 01010100100000000000000 This can be written in hexadecimal form 42AA4000 2. Double precision: biased exponent 1023+6=1029 1029 = 10000000101 Normalised mantisa = 010101001 we will add 0's to complete the 52 bits The IEEE 754 Double precision is: = 0 10000000101 0101010010000000000000000000000000000000000000000000 This can be written in hexadecimal form 4055480000000000>

Særlige værdier: IEEE har reserveret nogle værdier, der kan være tvetydige.

  • Nul -
    Nul er en speciel værdi angivet med en eksponent og mantisse på 0. -0 og +0 er forskellige værdier, selvom de begge er ens.



  • Denormaliseret -
    Hvis eksponenten kun er nuller, men mantissen ikke er det, er værdien et denormaliseret tal. Dette betyder, at dette tal ikke har en antaget førende før det binære punkt.

  • Uendelighed –
    Værdierne +uendelighed og -uendelighed er angivet med en eksponent for alle enere og en mantisse for alle nuller. Tegnbitten skelner mellem negativ uendelighed og positiv uendelighed. Operationer med uendelige værdier er veldefinerede i IEEE.

  • Not A Number (NAN) –
    Værdien NAN bruges til at repræsentere en værdi, der er en fejl. Dette er repræsenteret, når eksponentfeltet er alle enere med en nultegnsbit eller en mantisse, der ikke er 1 efterfulgt af nuller. Dette er en speciel værdi, der kan bruges til at angive en variabel, der endnu ikke har en værdi.
EKSPONENT MANTISA VÆRDI
0 0 præcis 0
255 0

Uendelighed
0 ikke 0 denormaliseret
255 ikke 0

Ikke et tal (NAN)

Tilsvarende for dobbelt præcision (bare erstatter 255 med 2049), rækker af flydende kommatal:

Denormaliseret Normaliseret Omtrentlig decimal
Enkelt præcision ±2-149til (1 – 2-23)×2-126 ±2-126til (2 – 2-23)×2127 ± cirka 10-44,85til cirka 1038,53
Dobbelt præcision ±2-1074til (1 – 2-52)×2-1022 ±2-1022til (2 – 2-52)×21023 ± cirka 10-323,3til cirka 10308,3

Rækken af ​​positive flydende kommatal kan opdeles i normaliserede tal og denormaliserede tal, som kun bruger en del af brøkernes præcision. Da hvert flydende kommatal har en tilsvarende, negeret værdi, er intervallerne ovenfor symmetriske omkring nul.

Der er fem forskellige numeriske intervaller, som enkeltpræcisions flydende kommatal ikke er i stand til at repræsentere med det hidtil præsenterede skema:

  1. Negative tal mindre end – (2 – 2-23) × 2127(negativt overløb)
  2. Negative tal større end – 2-149(negativt underløb)
  3. Nul
  4. Positive tal mindre end 2-149(positivt underløb)
  5. Positive tal større end (2 – 2-23) × 2127(positivt overløb)

Overløb betyder generelt, at værdier er blevet for store til at blive repræsenteret. Underflow er et mindre alvorligt problem, fordi det blot betegner et tab af præcision, som med garanti vil være tæt tilnærmet nul.

Tabel over det samlede effektive interval af endelige IEEE flydende kommatal er vist nedenfor:

Binær Decimal
Enkelt ± (2 – 2-23) × 2127 cirka ± 1038,53
Dobbelt ± (2 – 2-52) × 21023 cirka ± 10308,25

Særlige operationer –

Operation Resultat
n ÷ ±Uendelig 0
±uendeligt × ±uendeligt ±Uendelighed
±ikke-Nul ÷ ±0 ±Uendelighed
±endelig × ±uendelig ±Uendelighed
Infinity + Infinity
Uendelighed – -Uendelighed
+Uendelig
-Infinity – Infinity
-Infinity + – Infinity
– Uendelighed
±0 ÷ ±0 NaN
±Uendelig ÷ ±Uendelig NaN
±uendeligt × 0 NaN
NaN == NaN Falsk