Tartalom
A 2 kiegészítése egy olyan rendszer, amely negatív bináris számokat ábrázol. Használható a kivonás megvalósítására is - az "A" kivonása a "B" -ből, az "A" konvertálása negatív számra és összeadás; ezzel elkerülhető, hogy hardvert kell építeni az összeadáshoz és kivonáshoz. A bináris szám 2-es komplementerré alakításának rendszerével - és fordítva - lehetővé válik a negatív szám ábrázolásának egyszerűsítése és a kivonás végrehajtása. A 2-es kiegészítésből tizedes alapszámra konvertáláshoz két lépés szükséges: először binárisra, majd binárisról decimálissá konvertálás.
1. lépés
A decimális számokat bináris számként képviselje folyamatosan úgy, hogy elosztja őket 2-vel a sorozatban, és megőrzi a maradványokat. Például a 13 binárisra konvertálásához osszuk el a 13-at 2-vel, így kapunk 6-at, és az első maradék 1. Osztjuk 6-tal 2-vel, hogy 3-at kapjunk, a második maradékot pedig 0. Osztjuk 3-mal 2-vel, hogy 1-t kapjunk, a harmadik A maradék, ami 1. Oszd meg az 1-et 2-vel, hogy 0-t kapj, a maradék pedig az 1. A maradék fordított sorrendben 1101, a tizedes alapérték pedig 13 = bináris 1101. Könnyebb felismerni a bináris számot, mint amit előállítottam azt. Jobb oldalt adja hozzá a d X 2 ^ p értéket, ahol "d" a bináris számjegy, a "p" pedig a pozíció, így 1101 = (1 X 1) + (0 x 2) + (1 x 4) + (1 x 8) = 13.
2. lépés
Átalakítás binárisról kettő kiegészítésére, a bitek megfordítása és az 1. összeadása. Ekkor a 7 bináris értéke 00000111 lesz, a negatív 7 pedig 11111001 lesz, mert a 00000111 a megfordított bitekkel 11111000 és 11111000 + 1 = 11111001. A bal oldali számjegy a jel. A pozitív számok előjelbitje nulla, a negatív számoké pedig az előjel bitje 1. Az egyik jó dolog a 2 kiegészítésében az, hogy binárisra történő átalakítása pontosan ugyanazon a folyamaton történik, amikor a binárisból a komplementerbe konvertálunk kettőből. Például a két komplementer -7-ből 7 binárisra való átalakításához fordítsa meg a számjegyeket, és adjon hozzá 1-et. Az 11111001 fordított értéke 00000110 és 00000110 + 1 = 00000111.
3. lépés
Konvertáljon 2-es komplementerből decimális alapszámra két lépésben: 2-es komplementer binárisra, bináris után decimális alapra. Például a -21 átalakítására a 2 - 11101011 mellett - tizedessé, először konvertáljon binárisra, majd a binárisra decimálissá. Fordítsa meg az 11101011 értéket, hogy 00010100 legyen, és adjon hozzá 1-et, hogy megkapja a 00010101 értéket, ami binárisan 21. Ezután dekódolja a bináris értéket a helyzetjelöléssel, hogy megkapja (0 X 128) + (0 X 64) + (0 X 32) + (1 X 16) + (0 X 8) + (1 X 4) + (0 X 2) + (1 x 1) = 21.