Reálná čísla v informatice. Představující čísla v počítači

Téma: Reprezentace čísel v počítači. Formát s pevnou a plovoucí desetinnou čárkou. Dopředný, zpětný a doplňkový kód.

Opakování: Převod celých čísel na binární:

13 10 = a 2 Podobně:

13 10 =1101 2

1345 10 =10101000001 2


Reprezentace celých čísel v počítači.

Všechny informace zpracovávané počítači jsou uloženy v binární podobě. Jak probíhá toto skladování?

Informace zadané do počítače a vznikající při jeho práci se ukládají do jeho paměti. Paměť počítače lze považovat za dlouhou stránku samostatných řádků. Každá taková linka se nazývá paměťová buňka .

Buňka - toto je část paměti počítače, která obsahuje informace dostupné ke zpracování samostatný tým procesor. Minimální adresovatelná paměťová buňka se nazývá bajt - 8 binárních bitů. Byte ordinal se tomu říká adresa .

buňka (8 bitů \u003d 1 bajt)

strojové slovo.

Paměťová buňka se skládá z řady homogenních prvků. Každý prvek může být v jednom ze dvou stavů a \u200b\u200bslouží k zobrazení jedné z číslic čísla. Proto se nazývá každý prvek buňky vybít ... Je obvyklé číslovat bity v buňce zprava doleva, bit zcela vpravo má pořadové číslo 0. Toto je nejméně významný bit paměťové buňky, nejvýznamnější bit má sériové číslo (n-1) v n-bitové paměťové buňce.

Obsah libovolného bitu může být buď 0 nebo 1.

Volá se obsah paměťové buňky strojové slovo. Paměťová buňka je rozdělena na bity, z nichž každá ukládá číslici čísla.

Například nejmodernější osobní počítače jsou 64bitové, tj. Strojové slovo, a tedy paměťová buňka, sestává ze 64 bitů nebo bity.

Bit - minimální jednotka měření informací. Každý bit může být 0 nebo 1. Bit také zvaný vybít paměťové buňky počítače.

Standardní velikost nejmenší paměťové buňky je osm bitů, tedy osm binárních číslic. Soubor 8 bitů je základní jednotkou reprezentace dat - bajt.

Byte (z angličtiny byte - slabika) - část strojového slova, skládající se z 8 bitů, zpracovaná v počítači jako celek. Na obrazovce - paměťová buňka skládající se z 8 bitů je bajt. Nejméně významný bit má pořadové číslo 0, nejvýznamnější bit má pořadové číslo 7.

8 bitů \u003d 1 bajt

K reprezentaci čísel v paměti počítače se používají dva formáty: formát pevného bodu a formát s plovoucí desetinnou čárkou . Ve formátu s pevným bodem pouze celá čísla , ve formátu s plovoucí desetinnou čárkou - reálná čísla (zlomková).

V drtivé většině problémů vyřešených pomocí počítače je mnoho akcí omezeno na operace na celých číslech. To zahrnuje úkoly ekonomické povahy, při jejichž řešení jsou údaji počet akcií, zaměstnanců, dílů, vozidel atd. Celá čísla se používají k označení data a času ak číslování různých objektů: prvky pole, záznamy databáze, adresy strojů atd.

Celá čísla mohou být v počítači zastoupena znaménkem nebo bez znaménka (pozitivní nebo negativní).

Nepodepsaná celá čísla obvykleobsadí jeden nebo dva bajty v paměti a přijímat hodnoty od 00000000 v jednobajtovém formátu 2 až 11111111 2 , a ve dvoubajtovém formátu - od 00000000 00000000 2 až 11111111 11111111 2 .

Podepsaná celá čísla obvykle zabírají jeden, dva nebo čtyři bajty v paměti počítače, zatímco nejvíce vlevo (nejvýznamnější) bit obsahuje informace o znaménku čísla. Znaménko plus je kódováno jako nula a znaménko minus je kódováno jednou.

1101 2 10101000001 2

Kategorie přiřazená znaménku

(v tomto případě +)

Nejvýznamnější bity chybějící celému bajtu jsou vyplněny nulami.

V počítačové technologii se používají tři formy zápisu (kódování) celých čísel se znaménkem:rovný kód , zadní kód , další kód .

Přímý kód Je reprezentací čísla v binárním číselném systému, přičemž první číslice je přiřazena znaku čísla. Pokud je číslo kladné, pak je první číslice 0, pokud je číslo záporné, první číslice označuje jednu.

Přímý kód se ve skutečnosti používá téměř výlučně pro kladná čísla.Chcete-li napsat kód přímého čísla, musíte:

    Představují číslo v binární podobě

    Doplňte číslo nulami až po předposlední nejvýznamnější bit 8bitové nebo 16bitové buňky

    Vyplňte nejvýznamnější číslici nulou nebo jednou, v závislosti na znaménku čísla.

Příklad:číslo 3 10 v jednobajtovém formátu přímého kódu bude reprezentováno jako:


hislo -3 10 v přímém kódu jednobajtového formátu je:


Opačný kód pro kladné číslo v binární soustavě je stejné jako přímý kód. U záporného čísla jsou všechny číslice čísla nahrazeny jejich opakem (1 až 0, 0 až 1)obráceně, a jeden je zadán v bitu znaménka.

U záporných čísel se používá tzv. Doplňkový kód. To je způsobeno pohodlností provádění operací s čísly pomocí počítačové technologie.

Další kód používá se hlavně k reprezentaci záporných čísel v počítači. Tento kód usnadňuje výpočetní technologii aritmetické operace.

V kódu doplňku dvou, stejně jako v přímém, je první číslice vyhrazena, aby představovala znaménko čísla. Přední a doplňkový kód pro kladná čísla jsou stejné. Vzhledem k tomu, že přímý kód se používá téměř výhradně k reprezentaci kladných čísel a doplňkový kód se používá pro záporná čísla, pak téměř vždy, pokud je první bit 1, máme co do činění s doplňkovým kódem. (Nula představuje kladné číslo a jedna představuje záporné číslo.)

Algoritmus pro získání doplňkového kódu pro záporné číslo:

1. Najděte přímý kód čísla (převeďte číslo na nepodepsané číslo systému binárního čísla)

2. Získejte zpětný kód. Změňte každou nulu na jednu a jednu na nulu (převraťte číslo)

3. Přidejte 1 k obrácenému kódu

Příklad: Najdeme doplňkový kód desetinného čísla - 47 v 16bitovém formátu.

    Najdeme binární vyjádření čísla 47 (přímý kód).

2. Obraťte toto číslo (obrácený kód). 3. Přidejte 1 k obrácenému kódu a získejte záznam o tomto čísle do paměti RAM.

Důležité!

U kladných čísel jsou dopředu, dozadu a doplňkové kódy stejné, tj. přímý kód. Není nutné převádět kladná čísla pro reprezentaci v počítači!

Proč se používádalší kód, který představuje záporné číslo?

To usnadňuje provádění matematických operací. Například máme dvě čísla zastoupená v přímém kódu. Jedno číslo je kladné, druhé je záporné a tato čísla je třeba přidat. Nelze je však jednoduše složit. Nejprve musí počítač určit, o jaká čísla jde. Poté, co zjistil, že jedno číslo je záporné, by měl nahradit operaci sčítání operací odčítání. Poté musí stroj určit, které číslo má větší absolutní hodnotu, aby zjistil znaménko výsledku a určil, co od něho odečíst. Ve výsledku je získán složitý algoritmus. Je mnohem snazší přidat čísla, pokud jsou záporná převedena na dvojkový doplněk.

Praktický úkol:

Cvičení 1. Napište dopředu, dozadu a doplňkové kódy následujících desetinných čísel pomocí8-bit buňka:

64 10, - 120 10

Úkol 2. Pište dopředu, dozadu a doplňkové kódy pro další desetinná čísla v 16bitové mřížce

57 10 - 117 10 - 200 10

Kdokoli, kdo někdy v životě přemýšlel o tom, jak se stát „IT specialistou“ nebo správcem systému a jednoduše spojit osud s vědomím, jak jsou reprezentována čísla, je naprosto nezbytný. Koneckonců, na tom jsou založeny nízkoúrovňové programovací jazyky, jako je Assembler. Proto dnes budeme uvažovat o reprezentaci čísel v počítači a jejich umístění v paměťových buňkách.

Zápis

Pokud čtete tento článek, pravděpodobně o tom už víte, ale stojí za to jej zopakovat. Všechna data v osobním počítači jsou uložena v binárním formátu. To znamená, že jakékoli číslo musí být zobrazeno v příslušné formě, tj. Skládající se z nul a jedniček.

Chcete-li převést desetinná čísla, která jsou nám známá, do formy srozumitelné počítači, musíte použít níže popsaný algoritmus. K dispozici jsou také specializované kalkulačky.

Chcete-li tedy převést číslo na binární systém, musíte vzít hodnotu, kterou jsme vybrali, a rozdělit ji na 2. Poté dostaneme výsledek a zbytek (0 nebo 1). Výsledek vydělte znovu 2 a zbytek si zapamatujte. Tento postup musí být opakován, dokud konečný výsledek nebude také 0 nebo 1. Potom zapíšeme konečnou hodnotu a zbytky v opačném pořadí, v jakém jsme je dostali.

Přesně tak jsou čísla reprezentována v počítači. Libovolné číslo je zapsáno v binární formě a poté zabírá paměťovou buňku.

Paměť

Jak byste již měli vědět, minimální jednotka informací je 1 bit. Jak jsme již zjistili, reprezentace čísel v počítači je v binárním formátu. Každý bit paměti bude tedy obsazen jednou hodnotou - 1 nebo 0.

Buňky se používají pro skladování. Každá taková jednotka obsahuje až 8 bitů informací. Můžeme tedy dojít k závěru, že minimální hodnota v každém bloku paměti může být 1 bajt nebo být osmimístné binární číslo.

Celý

Nakonec se dostáváme k přímému umístění dat v počítači. Jak již bylo zmíněno, procesor nejprve převede informace do binárního formátu a až poté je umístí do paměti.

Začneme nejjednodušší možností, kterou je reprezentace celých čísel v počítači. Paměť PC přiděluje tomuto procesu směšně malý počet buněk - pouze jednu. Maximum v jednom slotu tedy mohou být hodnoty od 0 do 11111111. Převeďme maximální počet na obvyklou formu zápisu.
X \u003d 1 × 2 7 + 1 × 2 6 + 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 \u003d 1 × 2 8 - 1 \u003d 255 ...

Nyní vidíme, že na jednom paměťovém místě může být umístěna hodnota od 0 do 255. To však platí výhradně pro nezáporná celá čísla. Pokud počítač potřebuje napsat zápornou hodnotu, věci jdou trochu jinak.

Záporná čísla

Nyní se podívejme, jak jsou čísla v počítači zastoupena, pokud jsou záporná. Pro uložení hodnoty, která je menší než nula, jsou přiděleny dvě paměťové buňky nebo 16 bitů informací. V tomto případě 15 přejde pod samotné číslo a první (úplně vlevo) bit je uveden pod odpovídajícím znamením.

Pokud je číslice záporná, napište "1", pokud je kladná, pak "0". Pro snazší zapamatování si můžete nakreslit následující analogii: pokud existuje znaménko, vložte 1, pokud není, pak nic (0).

Zbývajících 15 bitů informací je přiřazeno číslu. Podobně jako v předchozím případě lze do nich umístit maximálně patnáct jednotek. Stojí za zmínku, že zaznamenávání záporných a kladných čísel se od sebe výrazně liší.

Aby bylo možné umístit hodnotu větší nebo rovnou nule ve 2 paměťových buňkách, používá se takzvaný přímý kód. Tato operace se provádí stejným způsobem, jak bylo popsáno, a maximální A \u003d 32766, pokud použijete Okamžitě chci poznamenat, že v tomto případě "0" odkazuje na pozitivní.

Příklady

Zastoupení celých čísel v paměti počítače není tak obtížný úkol. Pokud jde o záporné hodnoty, je to trochu komplikovanější. K zápisu čísla, které je menší než nula, se používá doplňkový kód.

K jeho získání provede stroj řadu pomocných operací.

  1. Nejprve je absolutní hodnota záporného čísla zapsána v binární notaci. To znamená, že počítač si pamatuje podobnou, ale pozitivní hodnotu.
  2. Poté je každý paměťový bit invertován. K tomu jsou všechny nahrazeny nulami a naopak.
  3. Přidejte k výsledku „1“. Toto bude další kód.

Uveďme názorný příklad. Předpokládejme, že máme číslo X \u003d - 131. Nejprve získáme jeho modul | X | \u003d 131. Poté jej převedeme do binární soustavy a zapíšeme do 16 buněk. Dostaneme X \u003d 0000000010000011. Po převrácení X \u003d 1111111101111100. Přidejte k tomu „1“ a získáte obrácený kód X \u003d 1111111101111101. Pro zápis do 16bitové paměťové buňky je minimální počet X \u003d - (2 15) \u003d - 32767.

Dlouhé celé

Jak vidíte, reprezentovat reálná čísla v počítači není tak obtížné. Tento rozsah však nemusí být pro většinu operací dostatečný. Proto, aby vyhověl velkému počtu, počítač přiděluje 4 buňky z paměti nebo 32 bitů.

Proces nahrávání se vůbec neliší od výše uvedeného. Uvedeme tedy pouze rozsah čísel, která lze v tomto typu uložit.

X max \u003d 2 147 483 647.

X min \u003d - 2 147 483 648.

Ve většině případů jsou tyto hodnoty dostatečné pro záznam a provádění datových operací.

Reprezentace reálných čísel v počítači má své výhody i nevýhody. Na jedné straně tato technika usnadňuje provádění operací mezi celočíselnými hodnotami, což výrazně zrychluje procesor. Na druhou stranu je tento rozsah nedostatečný pro řešení většiny problémů z oblasti ekonomiky, fyziky, aritmetiky a dalších věd. Proto nyní zvážíme další techniku \u200b\u200bpro supermagnitudy.

Plovoucí bod

Toto je poslední věc, kterou potřebujete vědět o tom, jak jsou čísla reprezentována v počítači. Vzhledem k tomu, že při psaní zlomků existuje problém s určením polohy čárky, počítač používá k umisťování těchto číslic exponenciální formu.

Libovolné číslo může být reprezentováno v následujícím tvaru X \u003d m * p p. Kde m je mantisa čísla, p je základ číselného systému a n je pořadí čísla.

Pro standardizaci záznamu čísel s plovoucí desetinnou čárkou se používá následující podmínka, podle které musí být modul mantisy větší než nebo roven 1 / na méně než 1.

Pojďme dostat číslo 666.66. Pojďme to uvést do exponenciální podoby. Ukázalo se X \u003d 0,66666 * 10 3. P \u003d 10 an \u003d 3.

Hodnoty s plovoucí desetinnou čárkou se obvykle ukládají do 4 nebo 8 bajtů (32 nebo 64 bitů). V prvním případě se tomu říká číslo normální přesnosti a ve druhém dvojnásobná přesnost.

Ze 4 bajtů přidělených pro ukládání číslic je 1 (8 bitů) uveden pro data o příkazu a jeho znaménku a 3 bajty (24 bitů) jsou použity k uložení mantisy a jejího znaménka podle stejných principů jako pro celočíselné hodnoty. S tímto vědomím můžeme provádět jednoduché výpočty.

Maximální hodnota n \u003d 1111111 2 \u003d 127 10. Na základě toho můžeme získat maximální velikost čísla, které lze uložit do paměti počítače. X \u003d 2 127. Nyní můžeme vypočítat maximální možnou mantisu. Bude se rovnat 2 23 - 1 ≥ 2 23 \u003d 2 (10 × 2,3) ≥ 1000 2,3 \u003d 10 (3 × 2,3) ≥ 10 7. Ve výsledku jsme dostali přibližnou hodnotu.

Pokud nyní spojíme oba výpočty, dostaneme hodnotu, kterou lze bez ztráty zapsat do 4 bajtů paměti. Bude se rovnat X \u003d 1,701411 * 10 38. Zbytek čísel byl vyřazen, protože to je přesně přesnost, kterou tato metoda záznamu umožňuje.

Dvojitá přesnost

Protože všechny výpočty byly popsány a vysvětleny v předchozím odstavci, zde vše vysvětlíme velmi stručně. U čísel s dvojitou přesností je obvykle pro objednávku a její znaménko přiděleno 11 bitů, stejně jako 53 bitů pro mantisu.

P \u003d 1111111111 2 \u003d 1023 10.

M \u003d 2 52 -1 \u003d 2 (10 * 5,2) \u003d 1000 5,2 \u003d 10 15.6. Zaokrouhlíme nahoru a dostaneme maximální počet X \u003d 2 1023 s přesností na "m".

Doufáme, že informace, které jsme poskytli o reprezentaci celých čísel a reálných čísel v počítači, budou pro vás užitečné při tréninku a budou alespoň o něco jasnější než ty, které jsou obvykle psány v učebnicích.

| Plánování lekcí pro akademický rok (FSES) | § 1.2. Představující čísla v počítači

Lekce 6-7
§ 1.2. Představující čísla v počítači

Klíčová slova:

Vybít
celé číslo bez znaménka
podepsané celočíselné zastoupení
reprezentace reálných čísel

1.2.1. Celé číslo

Operativní paměť počítače se skládá z buněk, z nichž každá je fyzickým systémem skládajícím se z řady homogenních prvků. Tyto prvky mají dva stabilní stavy, z nichž jeden odpovídá nule a druhý jednomu. Každý takový prvek se používá k uložení jedné z bitů - bit binárního čísla. Proto se každý prvek buňky nazývá bit nebo výboj (obr. 1.2).

Postava: 1.2. Paměťová buňka

Pro počítačovou reprezentaci celých čísel se používá několik různých metod, které se navzájem liší počtem číslic (pro celá čísla se obvykle přiděluje 8, 16, 32 nebo 64 číslic) a přítomností nebo nepřítomností znakové číslice. Nepodepsanou reprezentaci lze použít pouze pro nezáporná celá čísla, záporná čísla jsou reprezentována pouze v podepsané formě.

Nepodepsaná reprezentace se používá pro objekty, jako jsou adresy buněk, všechny druhy čítačů (například počet znaků v textu), stejně jako čísla označující datum a čas, velikost grafických obrázků v pixelech atd.

Maximální hodnoty nezáporného celého čísla je dosaženo, když jsou jednotky uloženy na všech číslicích buňky. Pro n-bitovou reprezentaci se bude rovnat 2 n -1. Minimální počet odpovídá n nulam uloženým v n paměťových bitech a je roven nule.

Níže jsou uvedeny maximální hodnoty pro celá čísla bez znaménka n-bit:

Chcete-li získat počítačovou reprezentaci celého čísla bez znaménka, stačí převést číslo na binární číselný systém a výsledek doplnit nulami vlevo na standardní bitovou šířku.

Příklad 1... Číslo 53 10 \u003d 110101 2 v osmibitovém vyjádření je:

Stejné číslo 53 v šestnácti číslicích bude zapsáno následovně:

Když je reprezentován znaménkem, nejstarší (levá) číslice je přiřazena znaménku čísla, zbývající číslice jsou přiřazeny samotnému číslu. Pokud je číslo kladné, pak se do znaménkového bitu umístí 0, pokud je číslo záporné - 1. Tato reprezentace čísel se nazývá přímý kód.

V počítači se přímé kódy používají k ukládání kladných čísel do paměťových zařízení k provádění operací s kladnými čísly.

Webové stránky Federálního střediska pro informace a vzdělávací zdroje (http://fcior.edu.ru/) obsahují informační modul „Číslo a jeho počítačový kód“. S pomocí tohoto zdroje můžete získat další informace o studovaném tématu.

K provádění operací se zápornými čísly se používá další kód k nahrazení operace odčítání sčítáním. Algoritmus pro generování dalšího kódu můžete zjistit pomocí informačního modulu „Další kód“, který je zveřejněn na webových stránkách Federálního centra pro informace a vzdělávací zdroje (http://fcior.edu.ru/).

1.2.2. Reprezentace reálných čísel

Libovolné reálné číslo A lze napsat v exponenciálním tvaru:

Kde:

m je mantisa čísla;

p je pořadí čísel.

Například číslo 472 LLC LLC lze reprezentovat takto: 4,72 10 8, 47,2 10 7, 472,0 10 6 atd.

S exponenciální formou psaní čísel se můžete setkat při provádění výpočtů pomocí kalkulačky, když odpověď obdržela záznamy v následujícím tvaru: 4.72E + 8.

Zde znaménko „E“ označuje základ systému desetinných čísel a zní jako „vynásobte deseti mocninou“.

Z výše uvedeného příkladu vidíte, že pozice čárky v záznamu čísla se může změnit.

Kvůli konzistenci se mantisa obvykle píše jako běžný zlomek s nenulovou číslicí za desetinnou čárkou. V tomto případě by bylo číslo 472 LLC LLC zastoupeno jako 0,472 10 9.

Skutečné číslo může v paměti počítače zabírat 32 nebo 64 bitů. V tomto případě jsou číslice přiděleny pro uložení znaménka mantisy, znaménka řádu, řádu a mantisy.

Příklad:

Rozsah reprezentace reálných čísel je určen počtem bitů přidělených pro ukládání pořadí čísel a přesnost je určena počtem bitů přidělených pro ukládání mantisy.

Maximální pořadí čísla pro výše uvedený příklad je 1111111 2 \u003d 127 10, a proto je maximální hodnota čísla:

0,11111111111111111111111 10 1111111

Zkuste sami zjistit, jaký je desetinný ekvivalent této hodnoty.

Pro řešení vědeckých a technických problémů je důležitá široká škála zastoupení reálných čísel. Zároveň je třeba si uvědomit, že algoritmy pro zpracování takových čísel jsou časově náročnější než algoritmy pro zpracování celých čísel.

NEJDŮLEŽITĚJŠÍ VĚC

Pro počítačovou reprezentaci celých čísel se používá několik různých metod, které se od sebe liší počtem číslic (8, 16, 32 nebo 64) a přítomností nebo nepřítomností znakové číslice.

Chcete-li představovat celé číslo bez znaménka, musí být převedeno na binární číselný systém a vyplněno nulami zleva na standardní bitovou šířku.

Když je reprezentován znaménkem, nejvýznamnější bit je přiřazen znaménku čísla, zbývající číslice jsou přiřazeny samotnému číslu. Pokud je číslo kladné, pak se do znaménkového bitu umístí 0, pokud je číslo záporné, pak 1. Kladná čísla jsou uložena v počítači v přímém kódu, záporná čísla jsou uložena v doplňkovém kódu.

Při ukládání reálných čísel do počítače se přidělují bity pro ukládání znaménka pořadí čísla, samotného pořadí, znaménka mantisy a mantisy. V tomto případě je libovolné číslo zapsáno následovně:

Kde:

m je mantisa čísla;
q - základ číselného systému;
p je pořadí čísel.

Dotazy a úkoly

1. Přečtěte si prezentační materiály k odstavci obsaženému v elektronické příloze učebnice. Tyto zdroje vám pomohou odpovědět na otázky a dokončit úkoly.

2. Jak jsou kladná a záporná celá čísla zastoupena v paměti počítače?

3. Jakékoli celé číslo lze považovat za skutečné, ale s nulovou zlomkovou částí. Zdůvodněte vhodnost přítomnosti speciálních metod počítačové reprezentace celých čísel.

4. Představte číslo 63 10 v nepodepsaném 8bitovém formátu.

5. Najděte desetinné ekvivalenty čísel podle jejich přímých kódů napsaných v 8bitovém podepsaném formátu:

a) 01001100;
b) 00010101.

6. Která čísla 443 8, 101010 2, 256 10 lze uložit v 8bitovém formátu?

7. Zapište si následující čísla v přirozené formě:

a) 0,3800456 10 2;
b) 0,245 10 -3;
c) 1,256900E + 5;
d) 9,569120E-3.

8. Zapište číslo 2010.0102 10 pěti různými způsoby do exponenciální notace.

9. Zapište následující čísla v exponenciálním tvaru pomocí normalizované mantisy - pravidelného zlomku s nenulovou číslicí za desetinnou čárkou:

a) 217,934 10;
b) 75321 10;
c) 0,00101 10.

10. Nakreslete diagram spojující klíčové pojmy diskutované v tomto odstavci.

Reálná čísla v matematických výpočtech nemají žádná omezení rozsahu a přesnosti reprezentace čísel. V počítačích jsou však čísla ukládána do registrů a paměťových míst s omezeným počtem bitů. proto přesnost reprezentace reálná čísla,zastoupeny v autě, je konečný a dosah je omezený.

Při psaní reálných čísel do programů je obvyklé místo obvyklé čárky dávat tečku. Libovolné reálné číslo lze reprezentovat formou psaní čísel se základním pořadím číselného systému.

Příklad 4.4. Desetinné číslo 1,756 ve formě psaní čísel se základním pořadím číselného systému lze vyjádřit následovně:

1.756 . 10 0 = 0.1756 . 10 1 = 0.01756 . 10 2 = ...

17.56 . 10 -1 = 175.6 . 10 -2 = 1756.0 . 10 -3 = ... .

Reprezentace s plovoucí desetinnou čárkou se nazývá reprezentace čísla N základ q tak jako :

N \u003d m *. q str ,

kde m - faktor obsahující všechny číslice čísla (mantisa), p - celé číslo s názvem order.

Pokud je „plovoucí“ bod umístěn v mantisce před první platnou číslicí, pak s pevným počtem číslic přidělených pro mantisu je zaznamenán maximální počet platných číslic čísla, tj. Maximální přesnost číselné reprezentace ve stroji.

Pokud se v mantisce první číslice za bodem (čárkou) liší od nuly, pak se takové číslo volá normalizováno .

Mantissa a pořádek q - přidaná čísla jsou obvykle zapsána do systému s radixem q a samotná základna je v desítkové soustavě.

Příklad 4.5. Zde jsou příklady normalizované reprezentace čísla v desítkové soustavě:

2178.01 =0.217801 * 10 4

0.0045 =0.45 * 10 -2

Příklady v binárním formátu:

10110.01 \u003d 0,1011001 * 2 101 (objednávka 101 2 \u003d 5 10)

Moderní počítače podporují několik mezinárodních standardních formátů úložiště pro čísla s plovoucí desetinnou čárkou, lišící se přesností, ale všechny mají stejnou strukturu. Skutečné číslo je uloženo ve třech částech: znaménko mantisy, posunuté pořadí a mantisa:

Charakteristický n-bit normalizované číslo se vypočítá následovně: pokud je nastaveno pořadí k bitů, pak se offset rovný (2 k -1 -1) přidá ke skutečné hodnotě pořadí představovaného v kódu doplňku těchto dvou.

Takže pořadí, které má hodnoty v rozsahu -128 až +127, se převede na posunuté pořadí v rozsahu 0 až 255. Posunuté pořadí se uloží jako nepodepsané číslo, což usnadňuje porovnávání, přidávání a odečítání objednávek a také zjednodušuje operaci porovnání. samotná normalizovaná čísla.

Počet objednávacích bitů ovlivňuje rozsah od nejmenšího nenulového čísla po největší číslo, které lze v daném formátu v zařízení zobrazit. Je zřejmé, že čím více číslic je vyhrazeno pro záznam mantisy, tím vyšší je přesnost číselného vyjádření. Vzhledem k tomu, že normalizovaná reálná čísla mají nejvýznamnější bit mantisy vždy rovný 1, tento nejvýznamnější bit není uložen v paměti.

Jakékoli binární celé číslo obsahující nejvýše m bitů, lze převést do reálného formátu bez zkreslení.

Tabulka 4.3. Standardní formáty pro reprezentaci reálných čísel

Příklad 4.6.Jednoformátová reprezentace normalizovaných čísel.

Uveďme si, jak bude uloženo číslo 37.16 10. Při převodu na binární číslo se nezíská přesný překlad 100101, (00101000111101011100) - zlomková část uzavřená v závorkách se v daném období opakuje.

Přeložíme číslo do normalizované podoby: 0,100101 (00101000111101011100) * 2 110

Představujme reálné číslo ve 32bitovém formátu:

1. Znaménko čísla je „+“, takže do bitu znaménka (31) zadáme 0;

2. Chcete-li nastavit pořadí, je přiděleno 8 bitů, ke skutečné hodnotě pořadí, představované v kódu doplňku dvou, přidejte offset (2 7 -1) \u003d 127. Jelikož je objednávka kladná, pak se přímý objednávkový kód shoduje s doplňkovým, vypočítáme posunuté pořadí: 00000110 + 01111111 \u003d 10000101

Zadáme výsledné posunuté pořadí.

3. Zadejte mantisu a zároveň odstraňte nejvyšší hodnost mantisy (vždy se rovná 1);

posunuté pořadí

mantisa

V tomto příkladu jsme byli schopni přenést pouze 24 číslic, zbytek byl ztracen se ztrátou přesnosti reprezentace čísla.

Účel služby... Online kalkulačka je navržena tak, aby reprezentovala reálná čísla ve formátu s plovoucí desetinnou čárkou.

Pravidla pro zadávání čísel

  1. Čísla v desítkové soustavě lze zadat jak bez zlomkové části, tak s zlomkovou částí (234234,455).
  2. Binární čísla se skládají pouze z číslic 0 a 1 (10100.01).
  3. Šestnáctková čísla se skládají z číslic 0 ... 9 a písmen A ... F.
  4. Můžete také získat obrácenou reprezentaci kódu (od hexadecimální po desítkovou, 40B00000)
Příklad č. 1. Převést 133,54 jako číslo s plovoucí desetinnou čárkou.
Rozhodnutí... Představme číslo 133,54 v normalizovaném exponenciálním tvaru:
1,3354 * 10 2 \u003d 1,3354 * exp 10 2
Číslo 1.3354 * exp 10 2 se skládá ze dvou částí: mantisa M \u003d 1.3354 a exponent exp 10 \u003d 2
Pokud je mantisa v rozsahu 1 ≤ M Denormalizovaná exponenciální reprezentace čísla.
Pokud je mantisa v rozsahu 0,1 ≤ M Představme číslo v denormalizovaném exponenciálním tvaru: 0,13354 * exp 10 3

Příklad č. 2. Reprezentujte binární číslo 101.10 2 v normalizované formě, zapište jej do 32bitového standardu IEEE754.
Rozhodnutí.
Exponenciální normalizovaná reprezentace binárního plovoucího bodu.
Přesuňme místa číslo 2 doprava. Ve výsledku jsme dostali hlavní komponenty exponenciálního normalizovaného binárního čísla:
Mantissa M \u003d 1,011
Exponent exp 2 \u003d 2
Převeďte normalizované binární číslo na 32bitový formát IEEE 754.
První bit je vyhrazen pro znaménko čísla. Jelikož je číslo kladné, je první bit 0
Dalších 8 bitů (2. až 9.) je rezervováno pro exponenta.
Chcete-li určit znaménko exponenta, abyste nezaváděli další bit znaménka, přidejte k exponentu posun o půl bajtu +127. Náš exponent tedy je: 2 + 127 \u003d 129
Přeložme exponenta do binární reprezentace.
Zbývajících 23 bitů je rezervováno pro mantisu. V normalizované binární mantisce je první bit vždy 1, protože číslo leží v rozsahu 1 ≤ M. Chcete-li přeložit celočíselnou část, musíte vynásobit číslici čísla odpovídajícím stupněm číslice.
01100000000000000000000 = 2 22 *0 + 2 21 *1 + 2 20 *1 + 2 19 *0 + 2 18 *0 + 2 17 *0 + 2 16 *0 + 2 15 *0 + 2 14 *0 + 2 13 *0 + 2 12 *0 + 2 11 *0 + 2 10 *0 + 2 9 *0 + 2 8 *0 + 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *0 = 0 + 2097152 + 1048576 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 3145728
V desítkovém kódu je mantisa vyjádřena jako číslo 3145728
Ve výsledku je číslo 101.10 představované v IEEE 754 s jedinou přesností.
Pojďme převést na hexadecimální zápis.
Rozdělme zdrojový kód do 4bitových skupin.
2 = 0100 0000 1011 0000 0000 0000 0000 0000 2
Dostaneme číslo:
0100 0000 1011 0000 0000 0000 0000 0000 2 \u003d 40B00000 16