Binární celé číslo v desítkové soustavě - Binary integer decimal
Formáty s plovoucí desetinnou čárkou |
---|
IEEE 754 |
jiný |
Standard IEEE 754-2008 zahrnuje formáty desítkových čísel s plovoucí desetinnou čárkou, ve kterých lze význam a exponent (a užitečné zatížení NaN ) kódovat dvěma způsoby, označované jako binární kódování a dekadické kódování .
Oba formáty rozdělují číslo na znakový bit s , exponent q (mezi q min a q max ) a p -digitální význam c (mezi 0 a 10 p −1). Zakódovaná hodnota je (−1) s × 10 q × c . V obou formátech je rozsah možných hodnot identický, ale liší se v tom, jak je reprezentován význam c . V dekadickém kódování je kódován jako řada p desítkových číslic (pomocí hustě zabaleného desetinného (DPD) kódování). Díky tomu je převod do desítkové formy efektivní, ale ke zpracování vyžaduje specializovanou desítkovou ALU . V kódování binárních celých desetinných čísel ( BID ) je kódováno jako binární číslo.
Formát
S využitím skutečnosti, že 2 10 = 1024 je jen o málo více než 10 3 = 1000, lze 3 n -číselná desetinná čísla efektivně sbalit do 10 n binárních bitů. Formáty IEEE však mají významy 3 n +1 číslice, což by obecně vyžadovalo 10 n +4 binární bity k reprezentaci.
To by nebylo efektivní, protože je potřeba pouze 10 ze 16 možných hodnot dalších 4 bitů. Efektivnější kódování lze navrhnout pomocí skutečnosti, že rozsah exponentu je ve formátu 3 × 2 k , takže exponent nikdy nezačíná 11
. Použití kódování Decimal32 (s významem 3*2+1 desetinná místa) jako příklad ( e
znamená exponent, m
pro mantisu, tj. Význam):
- Pokud význam začíná na
0mmm
, vynecháním úvodního 0 bitu se význam vejde do 23 bitů:
s 00eeeeee (0)mmm mmmmmmmmmm mmmmmmmmmm s 01eeeeee (0)mmm mmmmmmmmmm mmmmmmmmmm s 10eeeeee (0)mmm mmmmmmmmmm mmmmmmmmmm
- Pokud Mindind začíná na
100m
, vynecháním úvodních 100 bitů se Mindind vejde do 21 bitů. Exponent je posunut o 2 bity a11
bitový pár ukazuje, že se používá tento formulář:
s 1100eeeeee (100)m mmmmmmmmmm mmmmmmmmmm s 1101eeeeee (100)m mmmmmmmmmm mmmmmmmmmm s 1110eeeeee (100)m mmmmmmmmmm mmmmmmmmmm
- Nekonečno, tichý NaN a signalizační NaN používají kódování začínající na
s 1111
:
s 11110 xxxxxxxxxxxxxxxxxxxxxxxxxx s 111110 xxxxxxxxxxxxxxxxxxxxxxxxx s 111111 xxxxxxxxxxxxxxxxxxxxxxxxx
Bity uvedené v závorkách jsou implicitní : nejsou zahrnuty v 32 bitech kódování Decimal32, ale jsou implikovány dvěma bity za znaménkovým bitem.
Kódování Decimal64 a Decimal128 mají větší pole exponentu a významu, ale fungují podobným způsobem.
Pro kódování Decimal128 je 113 bitů významnosti ve skutečnosti dostačujících ke kódování 34 desetinných číslic a druhý tvar není ve skutečnosti nikdy vyžadován.
Kohorta
Desetinné číslo s plovoucí desetinnou čárkou lze kódovat několika způsoby, různé způsoby představují různé přesnosti, například 100,0 je kódováno jako 1000 × 10 −1 , zatímco 100,00 je kódováno jako 10 000 × 10 −2 . Sada možných kódování stejné číselné hodnoty se ve standardu nazývá kohorta . Je -li výsledek výpočtu nepřesný, je zachováno největší množství významných dat výběrem člena kohorty s největším celým číslem, které lze uložit do významu spolu s požadovaným exponentem.
Rozsah
Navrhovaná norma IEEE 754r omezuje rozsah čísel na význam ve tvaru 10 n −1, kde n je počet celých desetinných číslic, které lze uložit do dostupných bitů, aby bylo zaokrouhlení desetinných čísel provedeno správně.
32 bitů | 64 bitů | 128 bitů | |
---|---|---|---|
Úložné bity | 32 | 64 | 128 |
Trailing Významné bity | 20 | 50 | 110 |
Významné bity | 23/24 | 53/54 | 113 |
Významné číslice | 7 | 16 | 34 |
Kombinované bity | 11 | 13 | 17 |
Exponentní bity | 8 | 10 | 14 |
Zaujatost | 101 | 398 | 6176 |
Standardní emax | 96 | 384 | 6144 |
Standardní emin | -95 | −383 | -6143 |
Výkon
Binární kódování je ze své podstaty méně účinné pro převody do nebo z dat kódovaných desítkově, jako jsou řetězce ( ASCII , Unicode atd.) A BCD . Binární kódování je proto nejlepší zvolit pouze tehdy, jsou -li data spíše binární než desítková. IBM zveřejnila některá neověřená data o výkonu.
Viz také
Reference
Další čtení
- Savard, John JG (2018) [2007]. „Desetinný standard s plovoucí desetinnou čárkou“ . quadibloc . Archivováno od originálu dne 2018-07-03 . Citováno 2018-07-16 .