Přímý kód je způsob reprezentace binárních čísel s pevnou řádovou čárkou v počítačové aritmetice . Používá se hlavně k zápisu nezáporných čísel . V případě použití přímého kódu pro čísla, kladná i záporná, tedy čísla, jejichž zápis implikuje možnost použití znaménka (čísla se znaménkem), jsou uložené číslicové bity čísla doplněny znaménkovým bitem .
V anglické literatuře se nazývá metoda Sign and magnitude .
Při zápisu čísla v přímém kódu je nejvýznamnější bit (nejvýznamnější bit) deklarován jako znaménkový bit (znaménkový bit). Pokud je znaménkový bit 0, je číslo kladné , v opačném případě záporné . Ve zbývajících číslicích (které se nazývají digitální číslice ) je zapsána binární reprezentace modulu čísla.
Funkce kódování pro binární čísla (včetně celých čísel a smíšených zlomků) v přímém kódu je:
kde je číslo bitu znaménka (bitu znaménka). Zejména při kódování správných binárních zlomků (tj. čísel, která splňují nerovnost ) a kódovací funkce má tvar:
Hodnota čísla v přímém kódu je určena následujícím vzorcem:
kde:
Jak je vidět z posledního vzorce, znaménkový bit v přímém kódu nemá bitovou váhu. Při provádění aritmetických operací to vede k nutnosti samostatného zpracování znaménkového bitu v přímém kódu.
Desetinné číslo | binární číslo | Přímý 8bitový binární kód | Poznámka |
---|---|---|---|
0 | 0 | 0000 0000 | kladná nula |
-0 | -0 | 1 000 0000 | záporná nula |
5 | 101 | 0000 0101 | |
deset | 1010 | 0000 1010 | |
-5 | -101 | 1000 0101 | |
-16 | -10 000 | 1001 0000 | |
16. září | 0,1001 | 0,100 1000 | |
-9/16 | -0,1001 | 1,100 1000 | |
105/128 | 0,1101001 | 0,110 1001 | |
-5/128 | -0,0000101 | 1 000 0101 |
V informatice se přímý kód používá hlavně k zápisu nezáporných celých čísel. Lze jej snadno získat z reprezentace celého čísla v jakékoli jiné číselné soustavě . K tomu stačí převést číslo do binární číselné soustavy a poté doplnit volné číslice bitové mřížky stroje nulami.
Při použití pro podepsaná čísla má však přímý kód dvě nevýhody.
Provádění aritmetických operací s čísly v přímém kódu je obtížné: například i pro sčítání čísel s různými znaménky je kromě sčítačky nutné mít speciální blok „ odčítač “, jehož implementační složitost je stejná. jako u konvenční sčítačky . Navíc při provádění aritmetických operací vyžaduje bit se znaménkem zvláštní zacházení, protože nemá žádnou váhu. Vyžaduje také zpracování "záporné nuly". Provádění aritmetických operací na číslech se znaménkem v přímém kódu tedy bude vyžadovat složitější architekturu CPU a je obecně neefektivní.
Mnohem pohodlnější pro provádění aritmetických operací je kód dvojkového doplňku .
-bitový přímý kód ( digitální bity a jeden znak) umožňuje reprezentovat celá čísla v rozsahu .
-bitový přímý kód ( digitální bity a jeden znak) umožňuje reprezentovat správné binární zlomky v rozsahu .