A közvetlen kód a fixpontos bináris számok számítógépes aritmetikai ábrázolásának módja . Főleg nem negatív számok írására használják . Abban az esetben, ha közvetlen kódot használunk pozitív és negatív számokhoz, vagyis olyan számokhoz, amelyek írása magában foglalja a mínuszjel használatának lehetőségét (előjeles számok), a szám tárolt digitális bitjeit egy előjelbittel egészítjük ki .
Az angol irodalomban Sign and magnitude methodnak hívják .
Amikor számot írunk egy közvetlen kódba, a legjelentősebb bitet (legjelentősebb bitet) előjelbitté (jelbitté) deklaráljuk . Ha az előjelbit 0, akkor a szám pozitív , ellenkező esetben negatív . A fennmaradó számjegyekbe (amelyeket digitális számjegyeknek nevezünk) a szám modulusának bináris ábrázolása van beírva.
A bináris számok (beleértve az egész számokat és a vegyes törteket) kódolási funkciója a közvetlen kódban:
ahol az előjelbit (jelbit) száma. Különösen a megfelelő bináris törtek (vagyis olyan számok, amelyek kielégítik az egyenlőtlenséget ) kódolásakor a kódoló függvény a következő alakot ölti:
A közvetlen kódban lévő szám értékét a következő képlet határozza meg:
ahol:
Amint az az utolsó képletből látható, a közvetlen kódban lévő előjelbitnek nincs bit súlya. Az aritmetikai műveletek végrehajtásakor ez szükségessé teszi az előjelbit külön feldolgozását a közvetlen kódban.
Decimális szám | bináris szám | Közvetlen bináris kód 8 bites | jegyzet |
---|---|---|---|
0 | 0 | 0000 0000 | pozitív nulla |
-0 | -0 | 1000 0000 | negatív nulla |
5 | 101 | 0000 0101 | |
tíz | 1010 | 0000 1010 | |
-5 | -101 | 1000 0101 | |
-16 | -10000 | 1001 0000 | |
9/16 | 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 |
A számítástechnikában a közvetlen kódot főleg nem negatív egész számok írására használják. Könnyen megszerezhető egy egész szám bármely más számrendszerben való ábrázolásából . Ehhez elég a számot kettes számrendszerré alakítani, majd a gép bitrácsának szabad számjegyeit nullákkal kitölteni.
Előjeles számokhoz használva azonban a közvetlen kódnak két hátránya is van.
A számok aritmetikai műveleteinek végrehajtása direkt kódban nehézkes: például még a különböző előjelű számok összeadásához is szükség van az összeadón kívül egy speciális „ kivonó ” blokkra, amelynek megvalósítási összetettsége azonos. mint a hagyományos összeadóé . Ezenkívül az aritmetikai műveletek végrehajtásakor az előjelbit speciális kezelést igényel, mivel nincs súlya. A "negatív nulla" feldolgozását is igényli. Így az előjeles számokon végzett aritmetikai műveletek közvetlen kódban bonyolultabb CPU-architektúrát igényelnek, és általában nem hatékonyak.
Az aritmetikai műveletek végrehajtásához sokkal kényelmesebb a kettes komplement kód .
-bites közvetlen kód ( digitális bitek és egy előjel) lehetővé teszi egész számok megjelenítését a tartományban .
A -bit közvetlen kód ( digitális bitek és egy előjel) lehetővé teszi a megfelelő bináris törtek megjelenítését a tartományban .