Binární celé číslo v desítkové soustavě - Binary integer decimal
Plovoucí bod formáty |
---|
IEEE 754 |
|
jiný |
The IEEE 754-2008 Standard zahrnuje desítkové formáty čísel s plovoucí desetinnou čárkou, ve kterých významně a exponent (a užitečné zatížení NaNs ) lze kódovat dvěma způsoby, označovanými jako binární kódování a dekadické kódování.[1]
Oba formáty rozdělují číslo na znaménkový bit s, exponent q (mezi qmin a qmax) a a str-místný význam C (mezi 0 a 10str-1). Zakódovaná hodnota je (-1)s×10q×C. V obou formátech je rozsah možných hodnot totožný, liší se však významem C je zastoupena. V desítkovém kódování je kódován jako řada str desetinná místa (pomocí hustě zabalené desetinné místo (DPD) kódování). Díky tomu je převod do desítkové formy efektivní, ale vyžaduje speciální desetinnou čárku ALU zpracovat. V binární celé číslo desítkově (NABÍDKA) kódování, je kódováno jako binární číslo.
Formát
Vzhledem k tomu, že 210 = 1024 je jen o málo více než 103 = 1000, 3n-místná desetinná čísla lze efektivně zabalit do 10n binární bity. Formáty IEEE však mají významy 3n+1 číslice, což by obecně vyžadovalo 10n+4 binárních bitů 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 s využitím skutečnosti, že rozsah exponentů je ve tvaru 3 × 2k, takže exponent nikdy nezačíná na 11
. Použití kódování Decimal32 (s významem 3 * 2 + 1 desetinné číslice) jako příklad (E
znamená exponent, m
pro mantisu, tj. význam):
- Pokud význam začíná
0 mm
, vynechání úvodního 0 bitu umožňuje, aby se mantýnd zapadl do 23 bitů:
s 00eeeeee (0) mmm mmmmmmmmmmmmmmmmmmmmmms 01eeeeee (0) mmm mmmmmmmmmmmmmmmmmmmmmms 10eeeeee (0) mmm mmmmmmmmmm mmmmmmmmmm
- Pokud význam začíná
100 m
, vynechání předních 100 bitů umožňuje, aby se mantinel vešel do 21 bitů. Exponent je posunut o 2 bity a a11
bitový pár ukazuje, že se používá tento formulář:
s 1100eeeeee (100) m mmmmmmmmmmmmmmmmmmmmmms 1101eeeeee (100) m mmmmmmmmmmmmmmmmmmmmmms 1110eeeeee (100) m mmmmmmmmmm mmmmmmmmmm
- Nekonečno, ticho NaN a signalizace NaN používají kódování začínající na
s 1111
:
s 11110 xxxxxxxxxxxxxxxxxxxxxxxxxxxxs 111110 xxxxxxxxxxxxxxxxxxxxxxxxxxx 111111 xxxxxxxxxxxxxxxxxxxxxxxxxxx
Bity zobrazené v závorkách jsou implicitní: nejsou zahrnuty do 32 bitů kódování Decimal32, ale jsou implikovány dvěma bity po bitu znaménka.
Kódování Decimal64 a Decimal128 mají větší pole exponentů a významu, ale fungují podobným způsobem.
Pro kódování Decimal128 je 113 bitů mantink ve skutečnosti dost na kódování 34 desetinných číslic a druhý formulář není nikdy ve skutečnosti 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 zakódováno jako 1000 × 10−1, zatímco 100,00 je zakódováno jako 10 000 × 10−2. Sada možných kódování stejné číselné hodnoty se nazývá a kohorta ve standardu. Pokud je výsledek výpočtu nepřesný, největší množství významných dat se zachová výběrem člena kohorty s největším celým číslem, které lze uložit v mantinu spolu s požadovaným exponentem.
Rozsah
Navrhovaná norma IEEE 754r omezuje rozsah čísel na význam formy 10n−1, kde n je počet celých desetinných míst, které lze uložit do dostupných bitů, aby bylo zaokrouhlování desetinných míst provedeno správně.
32 bitů | 64 bitů | 128 bitů | |
---|---|---|---|
Úložné bity | 32 | 64 | 128 |
Koncové 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 |
Bity exponentů | 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ě efektivní pro převody na nebo z dat s desítkovým kódováním, jako jsou řetězce (ASCII, Unicode atd.) a BCD. Binární kódování je proto nejlepší zvolit pouze v případě, že jsou data spíše binární než desítková. IBM zveřejnila několik neověřených údajů o výkonu.[2]
Viz také
Reference
- ^ „NÁVRH Standard pro aritmetickou hodnotu s plovoucí desetinnou čárkou P754“ (PDF). 2006-10-04. Citováno 2007-07-01.[trvalý mrtvý odkaz ]
- ^ http://speleotrove.com/decimal/decperf.html
Další čtení
- Savard, John J. G. (2018) [2007]. „Standard s desetinnou plovoucí desetinnou čárkou“. quadibloc. Archivováno z původního dne 2018-07-03. Citováno 2018-07-16.