BCD: Porovnání verzí

Smazaný obsah Přidaný obsah
m wikitabulka
tabulka: 10 uz tam vazne nepatri! :) + cela tabulka predelana a presunuta vyse + Čítače + varovani pred povazovanim BCD za hexa + pahyl
Řádek 1:
'''Binary Coded Decimal''' (zkráceně '''BCD''', dvojkově reprezentované dekadické číslo) je způsob kódování celých dekadických čísel (hodnot) s využitím pouze dekadických [[číslice|číslic]] (0-9), pomocía to už na úrovni čtveřic čtyř[[bit]]ovýchů, binárních čísel[[nibble|nibblů]].
 
== Hodnoty ==
Jde o [[binární číslo|binární kódování]], kde čísla od 10 do 15 (kódy 1010 až 1111) nejsou využity. Pokud bychom tyto kódy využili, dostáváme místo BCD přirozené [[Hexadecimální soustava|hexadexicimální kódování]], kde se čísla od 10 do 15 označují písmeny A až F.
 
{| class="wikitable" widthtitle = "200pxBCD kódování"
'''Příklad''': číslo 29 se pomocí BCD kóduje jako "0010 1001".
<!--
 
|+ BCD kódování
{| class="wikitable" width="200px"
-->
! style="alig: left"; | BCD kód
! colspan="3"| Přirozená hodnota
! style="alig: left"; | Hodnota
! stylecolspan="alig: left3"; | BCD kód
|-
! [[Dvojková soustava|bin]]
! [[Hexadecimální soustava|hexa]]
! dekadická
! dekadická
! zacyklení
! přetečení
|-
| 0000
| 0
| 0
| 0
| první hodnota,<br />umělé zacyklení zpět na 9
| -1<br />umělý převod z vyššího řádu
|-
| 0001
| 1
| 1
| 1
|
|
|-
| 0010
| 2
| 2
| 2
|
|
|-
| 0011
| 3
| 3
| 3
|
|
|-
| 0100
| 4
| 4
| 4
|
|
|-
| 0101
| 5
| 5
| 5
|
|
|-
| 0110
| 6
| 6
| 6
|
|
|-
| 0111
| 7
| 7
| 7
|
|
|-
| 1000
| 8
| 8
| 8
|
|
|-
| 1001
| 9
| 9
| 9
| poslední hodnota,<br />umělé zacyklení dál na 0
| +1<br />umělý přechod na vyšší řád
|-
| 1010
| A
| 10
| colspan="3"| neplatná hodnota
|-
| 1011
| B
| neplatná hodnota
| 11
| colspan="3"| neplatná hodnota
|-
| 1100
| B
| neplatná hodnota
| 12
| colspan="3"| neplatná hodnota
|-
| 1101
| C
| neplatná hodnota
| 13
| colspan="3"| neplatná hodnota
|-
| 1110
| D
| neplatná hodnota
| 14
| colspan="3"| neplatná hodnota
|-
| 1111
| F
| neplatná hodnota
| 15
| colspan="3"| neplatná hodnota
|}
 
== [[Čítač]]e ==
V praxi se BCD kód používá v úlohách zobrazování hodnot ze strojové [[paměť|paměti]] do lidsky čitelné podoby, tedy v situacích, kdy se hodnota v paměti mění, jako například v čítačích. Na rozdíl od plného hexa čísla se pro BCD kódování [[Sekvenční obvod|sekvenčním obvodem]] ještě uměle zavádí nové vazby zacyklení:
:a) v rámci zkráceného cyklu jednoho řádu z '''9''' rovnou na '''0''' dalšího cyklu, místo aby zafungovala přirozená hexa vazba až z '''A''',
:b) a s tím souvisí i umělé zajištění přesunu přírůstku '''+1''', [[přetečení]], z jednoho řádu na vyšší opět už z hodnoty '''9'''.
Navíc tyto vazby musí zafungovat i při odpočtu, tedy při snižování hodnoty v paměti o '''-1'''.
 
;Příklad: Číslo 29 se pomocí BCD kóduje jako "0010 1001", každá čtveřice bitů odpovídá jedné decimální číslici: Hexa zápis po BCD zakódování je '''29''', tedy už lidsky čitelný, ačkoli původní hexa zápis je '''0x1D'''.
 
== Varování ==
Že je číslo v paměti uchováno pomocí sekvence bitů, to je běžné. Ale že ale v BCD kódu, to už je podstatná apriorní informace: Bez její znalosti by se totiž číslo dalo chybně považovat za obyčejné hexa číslo, například '''0x29''', což je ovšem dekadická hodnota 41 = '''2'''x16<sup>1</sup> + '''9'''x16<sup>0</sup> ! Sama tato [[metainformace]], jak s uloženou hodnotou nakládat, není v paměti stroje uložená: Je na konstruktérovi, aby jí s hexa nezaměnil.
 
{{Pahýl - elektronika}}
 
[[Kategorie:Počítačová terminologie]]