Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

Dvojková soustava

Z Wikipedie, otevřené encyklopedie
Na tento článek jepřesměrováno heslo binární. Další významy jsou uvedeny na stránceBinární (rozcestník).
Číselné soustavy

číselné soustavy světa
  • Východní Asie
  • Abecední
  • bývalé

Dvojková soustava (binární soustava,dyadická soustava[1]) ječíselná soustava, která používá pouze dvěčíslice:0 a 1. Dvojková soustava jepoziční číselná soustava se základem2, každá číslice tedy odpovídán-témocnině čísla dvě, kden je pozice dané číslice v zapsaném čísle. Takto zapsané číslo se nazývábinární číslo.

Dvojková soustava se používá ve všech moderníchdigitálníchpočítačích, neboť její dvě číslice (0 a 1) odpovídají dvěma jednoduše rozdělitelným stavůmelektrického obvodu (vypnuto a zapnuto), popřípadě nepravdivosti či pravdivostivýroku.

Výpočet hodnoty binárního čísla

[editovat |editovat zdroj]

Na příkladu

[editovat |editovat zdroj]

Například číslo zapsané v dvojkové soustavě11010110 si můžeme přepsat do tabulky s mocninami čísla dvě odpovídajícími pozicím jednotlivých číslic:

binární číslo11010110
pozice číslice76543210
mocniny čísla dvě2726252423222120
hodnoty mocnin1286432168421
krát binární číslice× 1× 1× 0× 1× 0× 1× 1× 0
výsledky součinu128640160420

Pro výpočet hodnoty čísla zapsaného v pozičních soustavách se násobí každá číslice odpovídající mocninou základu. Pro převod z dvojkové soustavy je výpočet jednodušší, násobí se jen jedničkou nebo nulou, tedy buď se mocnina započítá (např.1 × 2² = 2²) nebo nezapočítá (0 × 2³ = 0).

Stačí tedy pouze započítat ty mocniny, které odpovídají číslici 1, v příkladu: 128+64+16+4+2=214. Binární číslo 11010110 má tedy hodnotu odpovídající desítkovému číslu214.

Převod desítkového čísla na binární získáme opakovaným dělením desítkového čísla dvojkou a zapisováním zbytků dělení (0 nebo 1) zprava doleva:

pořadí dělení7.6.5.4.3.2.1.číslo
výsledky dělení136132653107214
rozklad na součin 22 × 0+ 12 × 1+ 12 × 32 × 6+ 12 × 132 × 26+ 12 × 53+ 12 × 107
zbytky dělení11010110

Vezmeme číslo 214, vydělíme jej dvěma, zapíšeme zbytek po dělení (0) a výsledek (107). Vezmeme výsledek (107), znovu vydělíme dvěma, zapíšeme zbytek (1) a výsledek (53). Takto pokračujeme, dokud nebude výsledek dělení 1, kterou zapíšeme jako zbytek (7. dělení výše) – to jenejvyšší platná číslice daného binárního čísla.

Matematický výpočet

[editovat |editovat zdroj]

Výpočet hodnoty binárního čísla, které se skládá zk+1{\displaystyle k+1} číslicx0x1xk{\displaystyle x_{0}x_{1}\ldots x_{k}}, každé o hodnotě buď 0, nebo 1, lze provéstpolynomem:

x=i=0kxi2ki{\displaystyle x=\sum _{i=0}^{k}{x_{i}}\cdot 2^{k-i}}

Tedy výše uvedený příklad dvojkového čísla 11010110 můžeme vypočítat následovně:

 x0=1;x1=1;x2=0;x3=1;x4=0;x5=1;x6=1;x7=0{\displaystyle \ x_{0}=1;x_{1}=1;x_{2}=0;x_{3}=1;x_{4}=0;x_{5}=1;x_{6}=1;x_{7}=0}
(11010110)2=i=07xi27i=x027+ x126+ x225+ x324+ x423+ x522+ x621+ x720={\displaystyle (11010110)_{2}=\sum _{i=0}^{7}{x_{i}}\cdot 2^{7-i}=x_{0}\cdot 2^{7}+\ x_{1}\cdot 2^{6}+\ x_{2}\cdot 2^{5}+\ x_{3}\cdot 2^{4}+\ x_{4}\cdot 2^{3}+\ x_{5}\cdot 2^{2}+\ x_{6}\cdot 2^{1}+\ x_{7}\cdot 2^{0}=}
=127+ 126+ 025+ 124+ 023+ 122+ 121+ 020=128 + 64 + 16 + 4 + 2 =(214)10{\displaystyle =1\cdot 2^{7}+\ 1\cdot 2^{6}+\ 0\cdot 2^{5}+\ 1\cdot 2^{4}+\ 0\cdot 2^{3}+\ 1\cdot 2^{2}+\ 1\cdot 2^{1}+\ 0\cdot 2^{0}=128\ +\ 64\ +\ 16\ +\ 4\ +\ 2\ =(214)_{10}}

Pro převod mezi soustavami se používají tyto metody:

Kódování záporných čísel

[editovat |editovat zdroj]

Pro ukládání, přenos a zpracování záporných binárních čísel vpočítači existuje mnoho možností, nejčastěji se používá kódování pomocídvojkového doplňku.

Přímý kód

[editovat |editovat zdroj]

První možný způsob je vyčlenění prvního bitu jakoznaménkového bitu. Pokud například binární číslo 00000001 vyjadřuje jedničku, pak 10000001 označuje −1.

Tento způsob ale komplikujealgoritmy pro praktické počítání – pro sčítání a odčítání jsou potřeba odlišné algoritmy a nejprve je vždy třeba testovat znaménkový bit a podle výsledku provést sčítání nebo odčítání. Další nevýhodou je, že existují dvě reprezentace čísla nula – kladná nula a záporná nula. Proto byl později pro záznam záporných čísel zaveden doplňkový kód.

Doplňkový kód

[editovat |editovat zdroj]
Související informace naleznete také v článku Dvojkový doplněk.

Při kódování v doplňkovém kódu je záporné číslo zaznamenáno jakobinární negace (záměna všech 0 za 1 a 1 za 0) původního čísla zvětšená o 1. Podle úvodního bitu lze v tomto kódu opět rozpoznat kladná a záporná čísla. Využívá se faktu, že při odečtení čísla 00000001 od čísla 00000000 dojde kpřetečení, a výsledkem je číslo 11111111. Čísla ve dvojkovém doplňku můžeme chápat také tak, že nejvyšší bit má místo váhy 2k váhu −2k.

V tomto kódu existuje jen jediná reprezentace čísla nula, pro sčítání a odečítání lze použít stejnou sčítačku (operace probíhají stejně, liší se pouze význam kódu). Také je zachována komutativita, tzn. že výsledek součtu libovolného počtu čísel v doplňkovém kódu je stejný bez ohledu na jejich pořadí, i když dochází k přetečení.

Příklad: pokud 00001101 je binární vyjádření čísla 13, pak −13 se vypočte jako NOT(00001101) + 1 = 11110010 + 1 = 11110011.

Pokud se sečte takto vyjádřené záporné číslo s jiným záporným nebo větším kladným číslem, dojde k přetečení rozsahu. Kód je ale zvolen tak, že po odříznutí přetečeného bitu dostáváme správný výsledek.

Příklad:20101310=2010+(13)10=000101002+111100112=1000001112=710{\displaystyle 20_{10}-13_{10}=20_{10}+(-13)_{10}=00010100_{2}+11110011_{2}=100000111_{2}=7_{10}} (po odříznutí přeteklého devátého bitu).

Poznámka: všechny příklady jsou pro jednoduchost provedeny na číslech o rozsahu 8bitů (1byte).

Inverzní kód

[editovat |editovat zdroj]
Podrobnější informace naleznete v článku Jedničkový doplněk.

Vedle dvou výše uvedených metod existuje ještě jakýsi mezikrok – kladná čísla se vyjadřují normálním způsobem, záporná čísla se vyjadřují binární negací čísla (a podle nejvyššího bitu lze opět poznat znaménko). Tento způsob se označuje jako inverzní kód čijedničkový doplněk. Například jestliže číslo 6 v osmibitovém vyjádření je 00000110, číslo −6 se vyjádří kódem 11111001.

Tento kód má stále dvě reprezentace čísla nula.

Kód s posunutou nulou

[editovat |editovat zdroj]
Podrobnější informace naleznete v článku Aditivní kódování.

Poslední používanou možností je k číslu připočítat nějakou známou konstantu, což se nazývákódování s posunutou nulou neboaditivní kódování. Například pro osmibitová čísla, která mohou reprezentovat 256 různých čísel, lze použít posun −127: pak budeme 00000000 považovat za −127, nulu vyjádříme jako 01111111 a symbol 11111111 je 128.

Nevýhodou tohoto zápisu je, že kladná čísla se liší od bezznaménkové reprezentace čísel. Operace sčítání nepotřebuje úpravy, ale pro operaci násobení je nutné od operandů odečíst známou konstantu.

Tento kód se běžně používá pro exponent v reprezentaci desetinných čísel pomocípohyblivé řádové čárky.

Srovnání číselných soustav

[editovat |editovat zdroj]
Číselná soustava (základ)
102345678912162036
1111111111111
21022222222222
311103333333333
41001110444444444
510112111055555555
6110201211106666666
71112113121110777777
8100022201312111088888
910011002114131211109999
101010101222014131211AAAA
10011001001020112104002442021441218464502S
100011111010001101001332201300043442626175013316B43E82A0RS

Odkazy

[editovat |editovat zdroj]

Reference

[editovat |editovat zdroj]
  1. POLÁK, Josef.Přehled středoškolské matematiky. 10. vyd. Praha: PROMETHEUS, 2022.ISBN 978-80-7196-458-2. 

Související články

[editovat |editovat zdroj]

Externí odkazy

[editovat |editovat zdroj]
Pahýl
Pahýl
Tento článek je příliš stručný nebopostrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodněrozšíříte. Nevkládejte všakbez oprávnění cizí texty.
Autoritní dataEditovat na Wikidatech
Portály:Matematika
Citováno z „https://cs.wikipedia.org/w/index.php?title=Dvojková_soustava&oldid=23507849
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp