Kódování v počítači
Ahoj všem, prosím mohl by mi někdo vysvětlit jak je to s přímým kódem. Jak jsem pochopil, tak slouží k zápisu + i - čísel, tak že nejvyšší bit je 1 u záporného čísla a 0 u kladného např. číslo 123 je kladné 0 |1111011 a záporné je tedy 1 |1111011. Jen mi nejde do hlavy jak zapíšu např. číslo -255, které je binárně 11111111? Díky za odpověď.
Do jednoho bytu pochopitelně nijak.
Takže tím pádem můžu vyjádřit maximálně číslo -127 (1|1111111) v 1B?
1|1111111 = -1
1|0000000 = -128
Není tohle náhodou již inverzní kód, pokud ano, pak by tedy bylo 1|1111111 = -0. Jak se tedy v přímém zapíše -2? -2 = 10000010? Nebo? Proč není -1 = 10000001? Díky za odpověď.
1|0000001 není -1, protože 1|0000000 by bylo -0 a měli bychom tak zbytečně dvě reprezentace nuly.
Samozřejmě by byla to o 1 posunout a prohlásit, že 1|0000000 = -1, 1|0000001 = -2 atd. Ale to by se pak špatně sčítalo a odečítalo.
Např. pokud máme 1|1111111 = -1, tak přičtením 1 získáme 0|0000000 = 0, tedy matematicky správnou hodnotu.
To co pise Wikan je doplnkovy kod a to je jediny kod ktory sa pouziva v praxi. Tie ostatne dve (primy a inverzny) su len teoreticke hovadiny http://cs.wikipedia.org/wiki/Dvojkov%C3%A1_soustav a. Neries to. Povodnu otazku mas zodpovedanu, ked jeden bit vyhradis pre znamienko tak tym samozrejme znizis mozny kladny rozsah z povodnych max. 255 na max. 127. Ale vytvoris tym mozny zaporny rozsah az po -128(alebo -127 pre primy nezmysel). Ak potrebujes rozsah vacsi musis pouzit bajtov viac (word, dword, qword, atd)
Super, díky už chápem Díky pánové.