Zobrazení celého čísla

Převod z 10 do 2

Celou část čísla dělíme 2. Zbytky po dělení dvou nám udává cifry čísla v dvojkové soustavě od nejméně významné cifry. Desetinou část násobíme 2. Číslo cifry udává celá část daného čísla. Viz pv170

Zobrazení celého čísla v počítači v binárním tvaru

Čísla bez znaménkem

Velikost je v rozsahu < 0; 2ⁿ - 1 >.

Číslo se znaménkem

Nejvyšší bit je často znaménkový.

Přímý kód

V absolutní hodnotě je rozsah zobrazení < -2n-1 + 1; -0 >. Jednoduché zobrazení, ale složitá aritmetika.

Inverzní kód

Inverze bitů (jedničkový doplněk). Rozsah zobrazení je < -2n-1 + 1; -0 >. Zase problém dvou nul.

Doplňkovým kód

Dvojkový doplněk = inverze všech bitů a přičtení jedničky. Rozsah zobrazení je < -2n-1;2n-1 - 1>. Nemá dvě nuly. Pravidla:

  1. se všemi bity pracujeme stejně
  2. přenos ze znaménkového bitu se ignoruje

Aritmetika ve dvojkových kódech

Základní operace = součet. Přetečení (přeplnění) = výsledek spadá mimo rozsah zobrazení.

Součet v doplňkovém kódu

Přetečení může nastat pouze pokud sčítáme čísla se stejným znaménkem. Po přetečení má výsledek znaménko opačné. Čísla bez znaménka: přenos indikuje přetečení. Procesory nastavují příznaky, jeden příznak je overflow a je na programátorech řešit přetečení, ne na procesoru

Součet v inverzním kódu

Nutnost provádět tzv. kruhový přenos = přičtení přenosu z nejvyššího řádu k výsledku.

BCD kód (Binary Coded Decimal)

viz pv170 Řeší problém jednoduchého převodu mezi dvojkovou a desítkovou soustavou. Nibble *[Nibble]: půlbajt, buď spodní nebo horní 4 bity bajtu. BCD hodiny Původní vznik kódu byl pro hromadné zpracování dat. Např. projekt sčítání lidu - hodně vstupních a výstupních operací.

Rozvinutý tvar (unpacked decimal)

= zónový var desítkového čísla mezitvar, nepoužívá se k výpočtům zóna = horní nibble - standardně F₁₆ - + C₁₆ (značí kladné znaménko) - - D₁₆ (značí záporné znaménko) Např. -71346₁₀ -> F7F1F3F4D6₁₆

Zhuštěný tvar

základní tvar pro výpočty vypouští se všechny zóny kromě nejpravější (znaménko)

Vnější kódy

= uložení písem, číslic aj. znaků Každý znak má svoji ordinální (numerickou) hodnotu. Jednobajtová kódování. - lexikální uspořádání (písmeno dříve v abecedě má nižší hodnotu) - snadný převod desítkových číslic na numerickou hodnotu Vícebajtová kódování.

ASCII *[ASCII]: American Standard Code for Information Interchange 7bitové kódování, z roku 1963

Prvních 32 znaků v ASCII jsou řídící znaky (netisknutelné). Nejnižší 4 bity znaků čísel udává hodnotu čísla.

Řídící znaky

Slouží k oznámení akce vzhledem k přenosu dat.

0 = NUL = null 7 = BEL = bell (zazvonil pár znaků před koncem, aby upozornil, při psaní na stroji) Carriage return = ,,návrat vozíku“, posun na začátek (téhož) řádku Line Feed = posun o řádek (bez změny sloupce)

Windows ukončují řádek dvojicí CR LF. UNIXové systémy ukončují řádek LF.

0o033 = ESC = escape -

8bitová zobrazení

Prvních 128 znaků stejné jako ASCII. Zbytek je jiný vzhledem k implementaci.

Semigrafické symboly = na tvoření tabulky, problém byl, že rozměr obrazovky byl 80x25

EBCDIC - starší jak ASCII, používá BCD kódování

Endianita

Big-Endian

Bajt nejvyššího řádu je uložen na nejnižší adrese.

adresa00010203
00123456

Little-Endian

Bajt nejvyššího řádu je uložen na nejvyšší adresy.

adresa00010203
56341200

Více bajtová kódování

UNICODE

USC-2

UTF-8

BOM (Byte-Order-Mark) = U+FEFF; označuje, že daný text je v UNICODE; řeší Endianitu (na LE je značka 0xFFFE)

Detekční a opravné kódy

Opravné kódy

Ztrojení - na 3 bitech může být pouze 000 nebo 111 - Dokáže detekovat 2 chyby a opravit 1 chybu (jestli je 1 bit = 1 -> 000; jestli jsou 2 bity = 1 –> 111)

Kódová (Hammnigova) vzdálenost Kódová vzdálenost d = počet bitů, v nichž se liší dvě sousední platné kódové kombinace