Kihagyás

Számrendszerek

Mik azok a számrendszerek?#

A számrendszereket más néven számábrázolási rendszernek is hívják. Egy adott számot, pontosabban értéket többféleképpen is ábrázolhatunk.

A 10-es számrendszert használjuk napi szinten, ez arra vezethető vissza, hogy 10 ujjunk van. De gondoljunk csak bele a Tally jelölésbe vagy a római számokba. Ugyanazt az értéket különböző írásjelekkel is ki tudjuk fejezni.

Ebben a fejezetben áttekintjük a 10-es, 2-es és 16-os számrendszerek közötti egész számok átváltását és 2-es számrendszerben a négy alapműveletet.

Számábrázolások#

Nézzük meg egy példát a Tally és római számábrázolásokra!

Tally jelölés kép

Tally jelölés

Római szám Érték
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

Római számok

Például a 34-es értéket a 10-es számrendszerben 34-gyel írjuk le, Tally jelöléssel IIII IIII IIII IIII IIII IIII IIII, római számokkal XXXIV-nek felel meg.

A számrendszerek felépítése#

A 10-es számrendszer bizonyára mindenkinek ismert, így ebből fogunk kiindulni.

Kérdés

De hogyan is néz ez ki?

Annyira rutinosan használjuk, hogy bele sem gondolunk ennek a matematikai mikéntjébe.

Egy számrendszerben van jelkészlet és helyiérték.

Jelkészlet és helyiérték#

Egy példán keresztül nézzük meg elsőnek a fentieket. Vegyük a 37211-es számot. Elemezzük!

A jelkészlete ennek a számnak: 3, 7, 2, 1. Ezek a számjegyek fordulnak elő benne, az ismétlődés nem számít.

A helyiértékét pedig az alábbi táblázat mutatja:

Tízezresek Ezresek Százasok Tízesek Egyesek
3 7 2 1 1

Tehát ez azt jelenti, hogy az egyes helyiértéken, azaz az egyesekből van 1 darab.
A tízesekből szintén 1 darab.
A százasokból 2 darab van, és így tovább.

Ezeket a helyiértékeket fel lehet írni hatványalakokban.

Írjuk fel a fenti táblázat helyiértékeit hatványalakokban:

104 = 10000 103 = 1000 102 = 100 101 = 10 100 = 1
3 7 2 1 1

Hogyan kapjuk ebből vissza az eredeti számot? A helyiértékeket megszorozzuk a hozzájuk tartozó értékekkel, majd ezeket összeadjuk.

Nézzük a fenti példán:
1 * 1 + 10 * 1 + 100 * 2 + 1000 * 7 + 10000 * 3 = 37211

Ebből a táblázatból a szemfülesebbek már észrevehették, hogy a 10-es számrendszer helyiértékeit a 10-es alapú hatványok adják.

Ezt általánosítva:

Állítás

Egy számrendszer helyiértékeit a számrendszer alapszámának hatványai fogják adni.

Számrendszer jelölése számoknál#

Ha kérdéses, hogy egy szám milyen számrendszerben van felírva, akkor jobb alsó indexbe szokták jelölni a számrendszert. Ha nincs megadva, akkor 10-es számrendszerben értelmezzük.

Például 101-et értelmezhetjük 10-es számrendszerben, ekkor 101-et ér, viszont akár 2-esben is, ekkor pedig 5-öt ér.

Tehát jelölni kell, hogy mi a 101-et a 10-es számrendszerben írtuk fel: 10110

A 10-es számrendszer (decimális)#

Mindenki találkozik vele a hétköznapok során, kezdésnek vizsgáljuk meg ezen számrendszer jellemzőit!

Jelkészlet#

A 10-es számrendszer jelkészlete a következő jelekből (számjegyekből) áll: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (10 darab).

Helyiérték#

A helyiértékeit a 10 hatványai adják.
Az egyesek helyiértékét a 100, a tízesekét a 101, a százasokét a 102, és így tovább.

Megjegyzés

A hatványkitevője lehet negatív is. Ez tört számot eredményez. Például 10-1 = 0.1

A 2-es számrendszer (bináris)#

Kérdés

Miért a 2-es számrendszer?

A számítógépek tárolóegységei kétállapotú fizikai elemek. Az egyik állapot a "van" állapot/folyik áram, ez az 1-es állapot, a másik a "nincs" állapot/nincs jelen áram, ez a 0-ás állapot. A digitális áramkörök esetében a 2-es számrendszert a legegyszerűbb megvalósítani.

Ha a fentieket megértettük, akkor nem lesz sokkal bonyolultabb a binárisban való számolás, csak szokatlan a tudatos használata ezen ismereteknek.

Jelkészlet#

A 2-es számrendszer jelkészlete: 0, 1 (2 darab).

Állítás

Minden számrendszerben annyi jel van, ahány a számrendszer alapja.

A 10-es számrendszerben 10 darab volt összesen, itt pedig 2 darab a jelkészlet darabszáma. Például a 8-as (oktális) számrendszerben 8 darabos a jelkészlet: 0, 1, 2, 3, 4, 5, 6, 7.

Állítás

A jelkészlet legnagyobb értéke mindig eggyel kisebb, mint a számrendszer alapja.

2-es számrendszer jelkészletében 0 és 1 van, 2 nincs (a 2 ábrázolásához új helyiértéket kell behozni), ahogyan 10-es számrendszer jelkészletében is 0, ..., 9 szerepel, a 10-hez már új helyiértéket kell behoznunk (1 tízes és 1 egyes).

Helyiérték#

A helyiértékeket itt a 2-es alapú hatványok fogják adni, azaz a 2-t kell hatványozni.

Nézzünk meg pár helyiértéket!

A 2-es számrendszer első 4 helyiértéke
23 = 8 22 = 4 21 = 2 20 = 1

Haladjunk sorban: Nézzük meg az 1-et hogyan ábrázoljuk 2-es számrendszerben!

20 = 1
1

Ugyanúgy írjuk, ahogyan szoktuk 10-es számrendszerben is.
A helyiérték 1, annak értéke pedig 1, tehát 1 * 1 = 1

És a 2-t hogyan ábrázoljuk 2-es számrendszerben? Nincs 2-es jelünk, csak 0 és 1.
Mit csinálunk 10-es számrendszerben, ha elfogy a jelkészlet?

Gondoljuk meg

8 után jön a 9, majd utána elfogyott a jelkészlet, behozunk 1 darab 1-es jelet a tízesek helyére (ahol ugye 0 áll, csak nem szoktuk kiírni), majd az egyesek helyét 0-ra írjuk. Aztán megyünk felfelé, 11, 12, ..., 19. Most megint 9-hez értünk az egyeseknél. A tízesek helyére eggyel nagyobb jelet írunk, azaz 1 helyett 2-t, az egyesek helyét pedig ismét 0-ra írjuk. Ez egészen megy addig, amíg a tízesek helyén is el nem érjük a 9-est. Tehát 90, 91, .., majd végül a 99 következik. Utána ismét elértük a 9-est az egyesek helyiértéken és immáron a tízesekében is, így új helyiértéket kell behozni, a százasokat, ami eddig 0 értéket képviselt, most 1-re írjuk, a másik két helyiértéket pedig 0-ra írjuk át. Így áll össze a 100-as szám. 1 darab százas (102 = 100) meg 0 darab tízessel (101 = 10) meg 0 darab egyessel (100 = 1). Felírva: 100 * 1 + 10 * 0 + 1 * 0 = 100

Ebből az következik, hogy ahhoz, hogy a 2-es értéket fel tudjuk írni 2-es számrendszerben, új helyiértéket kell behoznunk:

21 = 2 20 = 1
1 0

Ha összegezzük őket: 2 * 1 + 1 * 0 = 2

Na és a 3-mat hogyan írnánk fel?
Itt még nem szükséges új helyiértéket behozni, hiszen ha az előző példában az 1-es helyiértéket 1-re átírjuk, akkor az pont 3 lesz:

21 = 2 20 = 1
1 1

Így lesz 3 az értéke: 2 * 1 + 1 * 1 = 3

Nézzük meg a 6-os számot. Írjuk fel 2-es számrendszerbe!
Ehhez már biztosan kelleni fog egy új helyiérték, hiszen a 3-nál mind a két helyiértéken 1-es szerepel, így ennél nagyobb értéket nem tudunk ábrázolni ezen a két helyiértéken.

Ha behozunk egy új helyiértéket, akkor az már elegendő ahhoz, hogy felírhassuk a 6-ot 2-es számrendszerben:

22 = 4 21 = 2 20 = 1
1 1 0

Helyiértékek (2-es alapú hatványok)#

2-es számrendszer első helyiértékei (kisebbtől a nagyobbig)
1
2
4
8
16
32
64
128
256
512
1024
1024

0-tól 16-ig binárisan#

Egy kis segítség a továbbiakban a számolásokhoz.
Felfedezhető bizonyos szabályszerűség a bináris számok alakjaiban.

10-es számrendszer 2-es számrendszer
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000

Bináris <--> decimális átváltás#

Kicsi számokat viszonylag könnyű átváltani, de mi a helyzet egy nagyobb számmal?
Hogyan váltanánk át a legelső példaszámunkat, a 745-öt?

Erre létezik egy osztásos módszer, amit a következőképpen írunk fel:

Decimális számrendszerből átváltás tetszőlegesbe

Átváltandó szám | Célszámrendszer

A mi példánk így fest:

 745 | 2
-----|--

A bal oldali számot kell osztani maradékosan a célszámrendszer számával, majd a vonal bal oldalára kerül az egész szám, jobb oldalra pedig a maradék.

Tehát itt nem a megszokott osztást kell követni, ahol tizedesjegy pontossággal számolunk, amit kiad a számológép is, hanem a maradékra van szükségünk, amit általános iskolában tanítottak az osztás bevezetésénél.

Például 13 : 2 = 6 és maradék az 1. Hiszen 6 * 2 = 12, + 1 a maradék, így adja ki a 13-mat. Nekünk arra van szükségünk, hogy pontosan hány egésszer van meg benne, és mennyi lesz a maradék.

Egy másik példa 15 : 4 = 3 és maradék a 2. Hiszen 4 * 3 = 12, + 2 a maradék, így adja ki a 15-öt.

Ha 2-es számrendszerbe váltunk át, akkor ha páratlan számot osztunk 2-vel, biztosan 1 lesz a maradék. Ha páros számot osztunk, akkor 0 lesz a maradék.

Azt is csinálhatjuk a 2-es számrendszerbe való átváltás során, hogyha páratlan számot látunk, kivonunk belőle egyet, majd azt osztjuk el 2-vel. Ilyenkor biztosan 1 lesz a maradék, ami jobb oldalra kerül, bal oldalra pedig az egész szám, amiből kivontunk egyet, ezzel párossá téve, majd osztottuk 2-vel.

Addig csináljuk az osztást, amíg bal oldalon ki nem jön a 0! Mivel folyamatosan osztunk egy számot (2-es számrendszer esetében felezünk), így el fogjuk érni a 0-át.

Végigmegyünk a teljes folyamaton:

 745 | 2
-----|--
 372 | 1

745 : 2 = 372 egész + 1 a maradék. Az egész balra, a maradék jobbra kerül leírásra.

 745 | 2
-----|--
 372 | 1
 186 | 0

372 : 2 = 186 egész, mivel páros számot osztottunk, így egész fele a számnak, tehát a maradék 0.

 745 | 2
-----|--
 372 | 1
 186 | 0
  93 | 0

186 : 2 = 93 egész, a maradék 0.

 745 | 2
-----|--
 372 | 1
 186 | 0
  93 | 0
  46 | 1

93 : 2 = 46 egész, + 1 a maradék.

 745 | 2
-----|--
 372 | 1
 186 | 0
  93 | 0
  46 | 1
  23 | 0

46 : 2 = 23 egész, a maradék 0.

 745 | 2
-----|--
 372 | 1
 186 | 0
  93 | 0
  46 | 1
  23 | 0
  11 | 1

23 : 2 = 11 egész, + 1 a maradék.

 745 | 2
-----|--
 372 | 1
 186 | 0
  93 | 0
  46 | 1
  23 | 0
  11 | 1
   5 | 1

11 : 2 = 5 egész, + 1 a maradék.

 745 | 2
-----|--
 372 | 1
 186 | 0
  93 | 0
  46 | 1
  23 | 0
  11 | 1
   5 | 1
   2 | 1

5 : 2 = 2 egész, + 1 a maradék.

 745 | 2
-----|--
 372 | 1
 186 | 0
  93 | 0
  46 | 1
  23 | 0
  11 | 1
   5 | 1
   2 | 1
   1 | 0

2 : 2 = 1, a maradék 0.

 745 | 2
-----|--
 372 | 1
 186 | 0
  93 | 0
  46 | 1
  23 | 0
  11 | 1
   5 | 1
   2 | 1
   1 | 0
   0 | 1

1 : 2 = 0, + 1 a maradék.

Most hogy végeztünk, már csak annyi dolgunk van, hogy lentről felfelé elkezdjük leírni a számjegyeket egymás után (tehát balról jobbra): 10111010012

Nézzük meg a helyiértékeket:

29 = 512 28 = 256 27 = 128 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
1 0 1 1 1 0 1 0 0 1

Ha összeszámoljuk: 512 * 1 + 256 * 0 + 128 * 1 + 64 * 1 + 32 * 1 + 16 * 0 + 8 * 1 + 4 * 0 + 2 * 0 + 1 * 1 = 745

Nézzünk meg egy nagyobb számot, a 37211-et:

37211 | 2
------|--
18605 | 1

37211 : 2 = 18605 egész, + 1 a maradék.

37211 | 2
------|--
18605 | 1
 9302 | 1

18605 : 2 = 9302 egész, + 1 a maradék.

Nem nehezebb átváltani, mint egy kisebb számot, csak tovább tart.

A teljes folyamat:

37211 | 2
------|--
18605 | 1
 9302 | 1
 4651 | 1
 2325 | 1
 2325 | 1
 1162 | 1
  581 | 0
  290 | 1
  145 | 0
   72 | 1
   36 | 0
   18 | 0
    9 | 0
    4 | 1
    2 | 0
    1 | 0
    0 | 1

Ismét lentről felfelé kezdjük el leírni a számjegyeket egymás után (tehát balról jobbra): 100100010101111112

Nézzük meg a helyiértékeket:

215 = 32768 214 = 16384 213 = 8192 212 = 4096 211 = 2048 210 = 1024 29 = 512 28 = 256 27 = 128 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1

Ha összeszámoljuk: 32768 * 1 + 16384 * 0 + 8192 * 0 + 4096 * 1 + 2048 * 0 + 1024 * 0 + 512 * 0 + 256 * 1 + 128 * 0 + 64 * 1 + 32 * 0 + 16 * 1 + 8 * 1 + 4 * 0 + 2 * 1 + 1 * 1 = 37211

Ezekkel a módszerrel bármilyen nagy számot könnyedén át tudunk váltani oda-vissza a két számrendszer között.

Megjegyzés

Bármilyen számrendszerbe át lehet tízesből váltani ezzel az osztásos módszerrel, csak a célszámrendszer alapszámával kell osztani, és figyelni a maradékokra, amíg bal oldalt meg nem jelenik a 0.

Összeadás#

Adjunk össze két számot kettes számrendszerben!
Vegyünk két számot: 48310 és 74210

Először is, váltsuk át őket.

Kezdjük a 483-mal:

483 | 2
----|--
241 | 1
120 | 1
 60 | 0
 30 | 0
 15 | 0
  7 | 1
  3 | 1
  1 | 1
  0 | 1

48310 = 1111000112

A gyakorlás kedvéért megnézzük helyiértékesen is:

28 = 256 27 = 128 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
1 1 1 1 0 0 0 1 1

Összegezve: 256 * 1 + 128 * 1 + 64 * 1 + 32 * 1 + 16 * 0 + 8 * 0 + 4 * 0 + 2 * 1 + 1 * 1 = 483


742 átváltása:

742 | 2
----|--
371 | 0
185 | 1
 92 | 1
 46 | 0
 23 | 0
 11 | 1
  5 | 1
  2 | 1
  1 | 0
  0 | 1

74210 = 10111001102

Helyiértékesen:

29 = 512 28 = 256 27 = 128 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
1 0 1 1 1 0 0 1 1 0

Összegezve: 512 * 1 + 256 * 0 + 128 * 1 + 64 * 1 + 32 * 1 + 16 * 0 + 8 * 0 + 4 * 1 + 2 * 1 + 1 * 0 = 742

Írjuk a két számot egymás alá, ahogyan írásban szokás összeadni:

   111100011
+ 1011100110
  ----------

Ugyanúgy kell összeadni, ahogyan tízes számrendszerbeli számoknál szokás:

  • 0 + 0 = 0 lesz.
  • 0 + 1 vagy 1 + 0 = 1 lesz.
  • 1 + 1 = 0 lesz, és marad az 1.

Kezdjük a legkisebb helyiértéken (jobb széle):

   111100011
+ 1011100110
  ----------
           1

1 + 0 = 1, nem maradt semmi.

         1
   111100011
+ 1011100110
  ----------
          01

1 + 1 = 0, és maradt az 1 (fent van jelezve 1-essel a következő összeadandó helyiértékeknél a maradék).

        1
   111100011
+ 1011100110
  ----------
         001

0 + 1 = 0, de a korábbi 1-et hozzáadva már 0 lesz, és marad az 1.

   111100011
+ 1011100110
  ----------
        1001

0 + 0 = 0, de a korábbi 1-et hozzáadva 1 lesz, nem maradt semmi.

   111100011
+ 1011100110
  ----------
       01001

0 + 0 = 0, nem maradt semmi.

     1
   111100011
+ 1011100110
  ----------
      001001

1 + 1 = 0, maradt az 1.

     1
   111100011
+ 1011100110
  ----------
     1001001

1 + 1 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

   1 
   111100011
+ 1011100110
  ----------
    11001001

1 + 1 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  1 
   111100011
+ 1011100110
  ----------
   011001001

1 + 0 = 0, de a korábbi 1-es miatt 0 lesz, maradt az 1.

    111100011
+  1011100110
  -----------
  10011001001

1 + a korábban maradt 1-es az 0, maradt az 1.
Mivel nincs több helyiértékes szám, így leírjuk ezt a maradék 1-et egy új helyiértékre.

Az összeadás eredménye 100110010012 = 122510
483 + 742 = 1225

Kivonás#

A kivonás is hasonlóan megy, ahogyan azt megszoktuk írásban.

Vonjuk ki a 639-ből a 231-et.
Ezeknek az átváltása legyen önálló feladat gyakorlásként!

63910 = 10011111112
23110 = 111001112

Írjuk fel őket a szokásos módon (fent lesz a kisebbítendő, lent pedig a kivonandó):

  1001111111
-   11100111
  ----------

Ugyanúgy vonunk ki, ahogyan a 10-es számrendszerbeli számokkal szokás:

  • 1-hez, hogy 1 legyen, kell 0.
  • 0-hoz, hogy 1 legyen, kell 1.
  • 1-hez, hogy 0 legyen, kell 1, és maradt az 1.

Az első lépés:

  1001111111
-   11100111
  ----------
           0

1-hez, hogy 1 legyen, kell 0, nem maradt semmi.

  1001111111
-   11100111
  ----------
          00

1-hez, hogy 1 legyen, kell 0, nem maradt semmi.

  1001111111
-   11100111
  ----------
         000

1-hez, hogy 1 legyen, kell 0, nem maradt semmi.

  1001111111
-   11100111
  ----------
        1000

0-hoz, hogy 1 legyen, kell 1, nem maradt semmi.

  1001111111
-   11100111
  ----------
       11000

0-hoz, hogy 1 legyen, kell 1, nem maradt semmi.

  1001111111
-   11100111
  ----------
      011000

1-hez, hogy 1 legyen, kell 0, nem maradt semmi.

  1001111111
-   11100111
  ----------
     0011000

1-hez, hogy 1 legyen, kell 0, nem maradt semmi.

  +1
  1001111111
-   11100111
  ----------
    10011000

1-hez, hogy 0 legyen, kell 1, és maradt az 1.

 +1
  1001111111
-   11100111
  ----------
   110011000

0-hoz hozzáadjuk a maradék 1-et, 1-hez, hogy 0 legyen, kell 1, és maradt az 1.

  1001111111
-   11100111
  ----------
  0110011000

0-hoz hozzáadjuk a maradék 1-et, 1-hez, hogy 1 legyen, kell 0, és nem maradt semmi.

A kivonás különbsége 01100110002 = 40810
639 - 231 = 408

Megjegyzés

Ha kisebb számból nagyobbat vonnánk ki, a szokásos módon a végén ki kell tenni a különbség elé mínusz előjelet.

Szorzás#

A szorzás is a megszokott módon megy írásban.

Legyen a két számunk: 149 és 79
Az átváltást végezzük el önállóan!

14910 = 100101012
7910 = 10011112

Írjuk fel őket ahogyan a szorzásoknál szokás:

  10010101 * 1001111
  --------

Ugyanúgy szorzunk, ahogyan azt megszoktuk:

  • 0 * 0 = 0
  • 1 * 0 = 0
  • 1 * 1 = 1
  10010101 * 1001111
  --------
         1

1 * 1 az 1.

  10010101 * 1001111
  --------
        01

0 * 1 az 0.

Mivel ez viszonylag egyszerű, nem részletezzük az összes lépést egyesével.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------

Megfigyelhető, hogy ahol a jobb oldali tényezőnél 1-es van, ott a bal oldali tényezőt kell leírni ugyanúgy (mivel "valami" * 1 = "valami"), ahol pedig 0 szerepel, ott ki kell nullázni az adott sort (hiszen "valami" * 0 = 0).

Most már "csak" össze kell adnunk őket, viszont itt ez a tornyosodás miatt nehezebb, mint két szám összeadása:

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
               1

Simán leírjuk az 1-et.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
              11

0 + 1 = 1, nem maradt semmi.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
             011

1 + 0 + 1 = 0, maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
            1011

0 + 1 + 0 + 1 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
           11011

1 + 0 + 1 + 0 + 0 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
          111011

0 + 1 + 0 + 1 + 0 + 0 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
         1111011

0 + 0 + 1 + 0 + 0 + 0 + 1 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
         1111011

0 + 0 + 1 + 0 + 0 + 0 + 1 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
        11111011

1 + 0 + 0 + 1 + 0 + 0 + 0 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
       111111011

1 + 0 + 0 + 0 + 0 + 1 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
      0111111011

1 + 0 + 0 + 0 + 0 = 1, korábbi 1-es miatt 0 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
     10111111011

1 + 0 + 0 + 1 = 0, korábbi 1-es miatt 1 lesz, és maradt az 1.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
    110111111011

0 + 0 + 0 = 0, korábbi 1-es miatt 1 lesz, nem maradt semmi.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
   0110111111011

0 + 0 = 0, nem maradt semmi.

  10010101 * 1001111
  --------
  10010101
   00000000
    00000000
     10010101
      10010101
       10010101
        10010101
+ --------------
  10110111111011

Simán leírjuk az 1-et.

A szorzat 101101111110112 = 1177110
149 * 79 = 11771

Osztás#

Az osztást is a szokásos módon végezhetjük.

Osszuk el a 25-öt 3-mal!
Az átváltást akár helyiértékes felírással is elvégezhetjük.

2510 = 110012
310 = 112

Írjuk fel az osztást:

11001 : 11 =

Mivel kétjegyű az osztónk, így az osztandót legalább 2 jegytől kell vizsgálni.

11'001 : 11 = 1
 0

3-ban a 3 megvan egyszer, 3-hoz, hogy 3 legyen, kell 0.

110'01 : 11 = 10
 00

0-ban a 3 megvan nullaszor, 0-hoz, hogy 3 legyen, kell 0.

1100'1 : 11 = 100
 000

0-ban a 3 megvan nullaszor, 0-hoz, hogy 3 legyen, kell 0.

11001 : 11 = 1000
 0001
    1

1-ben a 3 megvan nullaszor, 0-hoz, hogy 1 legyen, kell 1.

A hányados 10002 = 810 lett, és maradt az 1.
810 * 310 + 110 = 2510


Most osszuk el a 23-mat 3-mal!
Az átváltás ismét önálló feladat.

2310 = 101112
310 = 112

Írjuk fel az osztást:

10111 : 11 =

Mivel kétjegyű az osztónk, így az osztandót legalább 2 jegytől kell vizsgálni.
Viszont az első két számjegy (102 = 210) értéke kisebb, mint maga az osztó (112 = 3 10) értéke, így az első 3 számjegyet kell venni az osztandónál.

101'11 : 11 = 1
 10

1012 = 510, tehát a 3 csak egyszer lesz meg az 5-ben, így 1 * 3-hoz, hogy 5 legyen, kell 2 (aposztróffal jelöljük, hogy hol tartunk).

1011'1 : 11 = 11
 101
  10

Lehoztuk a következő számjegyet, 1 1-est. 1012 = 510, tehát a 3 csak egyszer lesz meg az 5-ben, így 1 * 3-hoz, hogy 5 legyen, kell 2.

10111 : 11 = 111
 101
  101
   10

Lehoztuk a következő számjegyet, 1 1-est. 1012 = 510, tehát a 3 csak egyszer lesz meg az 5-ben, így 1 * 3-hoz, hogy 5 legyen, kell 2.

A hányados 1112 = 710 lett, és maradt a 2.
710 * 310 + 210 = 2310

A 16-os számrendszer (hexadecimális)#

A 16-os számrendszert azért használjuk az informatikában, hogy "rövidítsük" a 2-es számrendszerbeli számokat, mivel azok nagyon hosszúak tudnak lenni egy-egy érték kifejezésére.

16-os számrendszerben sokkal kevesebb helyiérték kell egy nagyobb érték leírásához, ráadásul gyorsan lehet 16-osból 2-esbe és 2-esből 16-osba átváltani!

Mi jön a 9-es szám után jelölésben?#

A 9-es számjegy után az angol ABC betűit használjuk.

Megjegyzés

Mivel az angol ABC 26 karakterből áll, így ki lehet számolni, hogy 10 (számjegyek darabszáma) + 26 (angol ABC betűi) = 36-os számrendszer a legnagyobb, amit még értelmezünk, annál nagyobbra ez a fajta jelölés nem alkalmas, új jelölölő karaktereket kellene bevezetni a jelkészletbe, de ez túlmutat ezen fejezeten.

Jelkészlet#

0, ..., 9-ig tartott a 10-es számrendszer jelkészlete. Még további 6 jelölőre lenne szükségünk a 16-os számrendszerben.
Így lesz a jelkészlete: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Lehet kisbetűvel is írni a betűket, az nem tesz különbséget.

Helyiérték#

Mennyit is érnek a betűk, hogyan kell elképzelni?
A 16-os számrendszer jelkészletének értékei:

Hexadecimális Érték
A 10
B 11
C 12
D 13
E 14
F 15

Számoljunk egy kicsit a decimális (10-es) számrendszerben:

  • 8: Ezzel nincs gond, le tudjuk írni simán.
  • 9: Ezt is le tudjuk írni, nem kell új helyiérték.
  • 10: Itt elfogyott a jelkészlet, új helyiértéket (tízesek) hoztunk be.

Hexadecimális számrendszerben az első két pont megegyezik, a 3. viszont máshogyan fest:

  • A16 (= 1010): Van még jelkészletünk a nagyobb értékre, mint 9, azaz nem kell új helyiértéket behozni, így a 10-es értéket egy A betűvel tudjuk jelölni.

Ábrázoljunk néhány számot helyiértékesen!

Legyen az első érték a 910:

160 = 1
9

A következő a 1010:

160 = 1
A

A következő a 1510:

160 = 1
F

A következő a 1610 lesz, amihez viszont már szükség lesz egy új helyiértékre:

161 = 16 160 = 1
1 0

Végezetül a 1710:

161 = 16 160 = 1
1 1

Átváltások#

Most már ismerjük a 10-es számrendszerből bármilyen számrendszerbe való átváltást.
Nézzünk meg még néhány fontosabb átváltást, trükköt!

Decimális --> Hexadecimális átváltás#

A decimálisból binárisba váltó módszer itt is működik, csak 16-tal kell osztani.

Vegyük a 30010-as számot:

300 | 16
----|---
 18 | C (12)
  1 | 2
  0 | 1

Ha a maradék nagyobb, mint 10, azt a megfelelő jellel kell jelölnünk, ahogyan a legelső esetnél látható.

Végül lentről felfelé olvasva megkapjuk, hogy 12C16 lett az hexadecimális alak.

Hexadecimális --> Decimális átváltás#

Ugyanúgy kell csinálni, ahogyan a binárisnál már néztük a decimálisba váltást.

Vegyük példának a 28D16 számot!
Írjuk fel helyiértékesen!

162 = 256 161 = 16 160 = 1
2 8 D

Annyi a különbség, hogy a betűk helyére be kell írnunk a megfelelő értéket. Tehát D helyett 13-mat írunk.
Összegezve: 256 * 2 + 16 * 8 + 1 * 13 = 653

Hexadecimális --> Bináris#

Ez az átváltás még egyszerűbb, mint a korábbiak!
Viszont már gyakorlatiasan kell mozogni a bináris számrendszerben hozzá.

Legyen a példaszámunk a 2C16 = 4410

A 16 a 2-nek a 4. hatványa (24 = 16), ebből következik, hogy egyesével nézzük a hexadecimális szám jegyeit, majd felírjuk őket bináris alakban!

Az első a 2-es lesz: 102
Majd a C, aminek az értéke 12, ami binárisan így fest: 11002

Ha ezeket leírjuk egymás után, akkor a 1011002 számot kapjuk, ami 4410, tehát jó az átváltás.

Kérdés

Nehéznek tűnik?

Tipp

Próbáljunk magunk elé képzelni a helyiértékes táblázatot, hogy hová kellene 1-est írni, hogy pontosan kijöjjön az érték! Természetesen rajzolhatunk is egyet magunknak, próbálgathatjuk, kis gyakorlással, idővel ráérez az ember.

Tipp

Egy másik lehetőség, hogy a számból mindig kivonjuk a célszámrendszer legnagyobb kivonható helyiértéket, ami >= 0. Például a 1210-t 2-es számrendszerbe úgy lehetne átváltani, hogy magunk elé vesszük a 2-es számrendszer helyiértékeit. 16-ot nem tudunk kivonni belőle, mert az negatív szám lesz. Az eggyel kisebb helyiérték a 8-as. Ezt ki tudjuk vonni belőle úgy, hogy >= lesz, mint 0, így ez biztosan lesz benne. A 8-as helyiértékére írhatunk 1-et. Kivonjuk ezt a helyiértéket a számunkból: 12 - 8 = 4. Most ezt vizsgáljuk úgy, ahogyan kezdtük. A következő helyiérték a 8-as után a 4 lesz. Ha ezt kivonjuk, akkor 4 - 4 = 0, tehát megvagyunk. Így 4-es is szerepel benne, erre a helyiértékre is 1-est írunk. 2-es és 1-es helyiértékekre pedig 0-át, hiszen már nincs miből kivonni való. Így lett 11002 a számunk.

Bináris --> Hexadecimális#

Ezen átváltás pedig az előzőhöz hasonlatos.

Példaszámunk most a 10011111011012 = 510110

Itt pedig 4-es csoportokat kell képezni a bináris számból jobbról balra haladván a számjegyeken.

Így lesz a következő a tagolás: 1|0011|1110|1101

Most pedig visszafelé kell gondolkozni az előző átváltáshoz képest, ugyanis hexadecimális értékekké kell átváltani ezeket a 4-es csoportokat!

Az első az 1 lesz: 116
A második a 0011 lesz: 316
A harmadik a 1110 lesz: 14, ami E16
Az utolsó a 1101 lesz: 13, ami D16

Ha ezeket egymás után leírjuk, akkor a 13ED16 számot kapjuk, ami 510110, stimmel az átváltás.

Hasznos linkek#

Számrendszerek közötti átváltások:

Videók: