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:

  1. Osszuk el a 16-ot 2-vel, és írjuk le a maradékot:
    • 16 ÷ 2 = 8 (maradék: 0)
  2. 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

       

  3. 1’s komplemens: 010000 -> 101111 
    Magyarázat: 0-ból 1, 1-ből 1 lesz.
  4. 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?

  1. 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.

  2. 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.

  3. 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.