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
Velikost je v rozsahu < 0; 2ⁿ - 1 >.
Nejvyšší bit je často znaménkový.
V absolutní hodnotě je rozsah zobrazení < -2n-1 + 1; -0 >. Jednoduché zobrazení, ale složitá aritmetika.
Inverze bitů (jedničkový doplněk). Rozsah zobrazení je < -2n-1 + 1; -0 >. Zase problém dvou nul.
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:
Základní operace = součet. Přetečení (přeplnění) = výsledek spadá mimo rozsah zobrazení.
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
Nutnost provádět tzv. kruhový přenos = přičtení přenosu z nejvyššího řádu k výsledku.
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í.
= 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₁₆
základní tvar pro výpočty vypouští se všechny zóny kromě nejpravější (znaménko)
= 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.
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 -
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í
Bajt nejvyššího řádu je uložen na nejnižší adrese.
| adresa | 00 | 01 | 02 | 03 |
|---|---|---|---|---|
| 00 | 12 | 34 | 56 |
Bajt nejvyššího řádu je uložen na nejvyšší adresy.
| adresa | 00 | 01 | 02 | 03 |
|---|---|---|---|---|
| 56 | 34 | 12 | 00 |
us-ascii = 1 bajt (7 bitů)1 zleva vyjadřuje délku sekvence; následuje nula 0, která je oddělovač10U+0159, kde 0x0159 je hexadecimální0000 0001 0101 1001110x xxxx 10xx xxxx1100 0101 1001 10010xC599BOM (Byte-Order-Mark) = U+FEFF; označuje, že daný text je v UNICODE; řeší Endianitu (na LE je značka 0xFFFE)
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
k chyb: d >= k+1k chyb: d >= 2k+1