Kérdés: Ha egy tudományos kézi számológép összes karakterhelyét egyessel töltöm ki kettes számrendszerben, és átváltom tízes számrendszerbe, mínusz egyet ad eredményül. Sok típust kipróbáltam, és mindegyik elköveti ezt a hibát. Mi a
magyarázata ennek?


Válasz: Ez nem hiba, hanem az ún. kettes komplemens számábrázolás. Ez a következõ. (Tegyük fel, hogy a számológépünk 8 számjegyet (kettes számrendszerben) képes kezelni. Természetesen a módszer bármennyi számjeggyel ugyanúgy mûködik.)

8 számjeggyel 2 a nyolcadikon számot lehet leírni, azaz 0–255 -ig tudunk számot leírni. A kettes komplemens módszer arra jó, hogy bár ugyanennyi számot írunk le, de negatív is lehet köztük. Ezt úgy érjük el, hogy az elsõ számjegyet kinevezzük elõjelnek. Ha ez a számjegy 0, akkor nem negatív számot írunk le, ha 1, akkor negatívat, de oly módon, hogy utána 128-tól
visszafelé számolunk. Azaz ha (-x)-et akarunk írni, akkor leírjuk azt, hogy 1, majd kettes számrendszerben a (128-x) -et kell írnunk. Néhány példa:

–1=11111111
–2=11111110
 1 =00000001

Hol használják?
Mindenütt, elég elterjedt módszer, pl. a számítástechnikában is.

Miért jó?
Az a nagy elõnye, hogy könnyû a segítségével számokat összeadni, még akkor is, ha negatívak.
Példa (a számológépünk csak 4 számjegyet tud):

  0111     = 7
+1111     = –1
----------
10110

Mivel a gépünk most csak 4 bitet tud, az elsõ számjegyet a gép ki sem számolja, az elvész:
0110      = 6

Ugye, milyen jó?

Solyomvári Béla



Vissza a kérdésekhez