információtechnológia
Hogyan ábrázoljuk a negatív számokat binárisan?
Számrendszerek alapjai
Feladatok
Ábrázolja a -16 (decimális) számot LE, N=6 bites 1’s komplemens és 2’s komplemens számrendszerben
1’s komplemens:
- A negatív számot úgy kapjuk meg, hogy a pozitív szám összes bitjét invertáljuk (0 → 1, 1 → 0).
- Ez a módszer lehetővé teszi, hogy a negatív számok ábrázolása egyszerű bitenkénti negálással történjen.
- Érdekessége, hogy kétféle nullát is ábrázolhatunk: +0 (000000) és -0 (111111).
Az 1’s komplemens rendszer hátránya, hogy a kétféle nulla (+0, -0) miatt bonyolultabb a műveletvégzés.
2’s komplemens:
- Az 1’s komplemens alapján a negatív számhoz még +1-et hozzáadunk.
- Ez az ábrázolás kiküszöböli a +0 és -0 kettősséget, így csak egyféle nullát tartalmaz.
- A 2’s komplemens módszert a legtöbb számítógépes rendszer használja.
Általános paraméterek:
- N = 6 bites rendszer: 6 bit áll rendelkezésre az értékek ábrázolásához.
- Little Endian (LE): A legkevésbé jelentős bájt (LSB) kerül először a memóriába.
Pozitív 16 decimális szám binárisan:
Lépések:
- Osszuk el a 16-ot 2-vel, és írjuk le a maradékot:
- 16 ÷ 2 = 8 (maradék: 0)
- Osszuk tovább az eredményt 2-vel, amíg a hányados 0 lesz:
- 8 ÷ 2 = 4 (maradék: 0)
- 4 ÷ 2 = 2 (maradék: 0)
- 2 ÷ 2 = 1 (maradék: 0)
- 1 ÷ 2 = 0 (maradék: 1)
A maradékokat fordított sorrendben írjuk le és kiegészítjük 6 bitre: 010000
Ellenőrzés
Helyiértékek szerint visszaalakítjuk a bináris számot decimálisra:
- 010000 = 0*32+1*16+0*8+0*4+0*2+0*1 = 16
- 1’s komplemens: 010000 -> 101111
Magyarázat: 0-ból 1, 1-ből 1 lesz. - 2’s komplemens: 1’s komplemenshez hozzáadunk 000001-et.

5. Little Endian memóriaábrázolás:
A legkevésbé jelentős bájt (LSB) kerül először a memóriába. Itt azonban 6 bites számunk nem tölt ki egy bájtot (8 bitet), ezért így ábrázoljuk:
Memóriacím | Tartalom (1’s komplemens) | Tartalom (2’s komplemens) |
---|---|---|
0x00 | 101111 | 110000 |
Little Endian módban ez nem okoz problémát. Ilyenkor a szám az alacsonyabb memóriacímre kerül, és az üres helyeket figyelmen kívül hagyjuk.
Mit jelentenek a táblázat tartalmai?
- Memóriacím (0x00):
Ez az a hely a memóriában, ahol a számokat tároljuk. Ebben az esetben a számok egyetlen memóriacímre kerülnek, mert mindössze 6 bitet használnak. - Tartalom (1’s komplemens):
Az 1’es komplemens az a számábrázolási forma, ahol a pozitív szám mindem bitjét megfordítjuk (0 → 1, 1 → 0). A –16 binárisan 101111 az 1’s komplemens szabályai szerint. Ez kerül az 0x00 memóriacímre. - Tartalom (2’s komplemens):
A 2’s komplemens az 1’s komplemens érték +1. A -16 binárisan 110000, a 2’s komplemens szabályai szerint. Ez szintén a 0x00 memóriacímre kerül.
Miért nincs itt tényleges Little Endian hatás?
A Little Endian fordított sorrendje akkor lényeges, ha a szám több bájtot (8 bitnél nagyobb) foglal el. Ebben a példában azonban a szám csak 6 bit hosszú, ezért nem kell külön bájtokat fordítva tárolni. Az egész szám egyetlen memóriacímre kerül.