Tamás Ferenc: Bináris számábrázolás

Számrendszerekről általában

A sikeres és gyors bináris számábrázoláshoz feltétlenül meg kell érteni a számrendszereket! A legegyszerűbb, legáltalánosabban használt a tízes számrendszer. Alapja: 10. Számjegyei: 0, 1, 2, 3, 4, 5, 6, 7, 8 és 9. Másik neve: decimális számrendszer. Mivel a hétköznapokban is ezt használjuk, ezért erről most nem szeretnék többet írni.

A számítástechnikában általánosan használt számrendszer a kettes, vagy bináris. Itt az alap: 2. Használt számjegyek: 0 és 1. Nagyon fontos, hogy bár az informatika alapja a bináris számrendszer, de ettől függetlenül sokkal egyszerűbb a tizenhatos, avagy a hexadecimális rendszert használni. A rendszer alapja: 16. Használt számjegyek: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10=A, 11=B, 12=C, 13=D, 14=E és 15=F. Az egyszerűbb megjegyzéshez nyugodtan használhatjuk a következő (ujjakkal mutatott) példát:

 

 

10

11

12

13

14

15

A

B

C

D

E

F

10

11

12

13

14

15

(Képek forrása: http://en.wikipedia.org/wiki/Finger_binary )

Mivel sokat fogjuk használni, ezért érdemes külön definiálni a 8-as, vagy oktális rendszert. Itt az alap: 8. Használt számjegyek: 0, 1, 2, 3, 4, 5, 6 és 7. (Megj.: ezt legtöbbször Linux operációs rendszerek jogai esetében használjuk, de máskor is jól jön.)

Természetesen van még igen sok, máshol még fellelhető számrendszer is. Gondoljunk itt például az angolszász nyelvekben gyakori 12-es rendszerre! (pl.: angolban 10=ten, 11=eleven és 12=twelve, de már a 13=thirteen) Előfordulhat még az ókori Babilonban előfordult 60-as rendszer, amely mind a mai napig az óra perceiben és a perc másodperceiben köszön vissza. Ám az informatikában szinte kizárólagosan ez a 4 rendszer fordul elő.

Átváltás a tízes számrendszerre

A különböző számrendszerek között gyorsan és rugalmasan kell tudnunk átváltani. Ezek közül a legegyszerűbb művelet a 10-re való átváltás.

Vegyük először a kettő hatványait: (javaslat: 21-210 között az értékeket érdemes megtanulni, legalább sorban...)

20

21

22

23

24

25

26

27

28

29

210

1

2

4

8

16

32

64

128

256

512

1024

 

Vegyünk most egy egyszerű bináris számot: 10012.
A jegyek értéke sorrendben a következő: 1*23+0*22+0*21+1*20 = 1*8+0*4+0*2+1*1 = 8+0+0+1 = 9. Tehát: 10012 = 910
Így az átszámítás kicsit nehézkesnek tűnik, de pár példa után menni fog!

 

Második példa legyen egy 8-jegyű bináris szám: 1010.01112.

(Megjegyzés: A 4. bináris számjegy után nem kellene pont, de így a szám könnyebben olvasható.)

Itt is az előzőhöz hasonlóan járunk el:
1*27+0*26+1*25+0*24+0*23+1*22+1*21+1*20 =

A fenti hatvány-táblázatot ismételten használva átírjuk a hatványokat:
= 1*128+0*64+1*32+0*16+0*8+1*4+1*2+1*1 =

Most végezzük el a szorzásokat:
= 128+0+32+0+0+4+2+1 = 16710.

Tehát: 1010.01112 = 16710.

Tapasztalatom szerint ezt a matematika iránt fogékonyak egyből megértik, de sokszor el szokták számolni és az 5.-10. gyakorló feladat között elmegy a kedvük az egésztől, mert megunják. Ezért van egy kicsit szemléletesebb, de nem feltétlenül gyorsabb módszerem! A példaként vett szám legyen ugyanaz, mint az előbb!

 

Kezdésnek vegyünk fel egy 5*8-as táblázatot a következő formátumban:

Kitevő

Hatvány

Érték

Számjegy

Szorzat

0

 

 

 

 

1

 

 

 

 

2

 

 

 

 

3

 

 

 

 

4

 

 

 

 

5

 

 

 

 

6

 

 

 

 

7

 

 

 

 

Itt értelemszerűen annyi sor kell, ahány jegye van a bináris számnak.

Második lépésben írjuk fel a 2 hatványait – egyelőre csak hatványalakban!

Kitevő

Hatvány

Érték

Számjegy

Szorzat

0

20

 

 

 

1

21

 

 

 

2

22

 

 

 

3

23

 

 

 

4

24

 

 

 

5

25

 

 

 

6

26

 

 

 

7

27

 

 

 

Harmadik lépésben fentről lefelé töltsük ki a harmadik oszlopot – a többség hajlandó megjegyezni a kettő hatványait így, sorban. Tehát most itt állunk:

 

Kitevő

Hatvány

Érték

Számjegy

Szorzat

0

20

1

 

 

1

21

2

 

 

2

22

4

 

 

3

23

8

 

 

4

24

16

 

 

5

25

32

 

 

6

26

64

 

 

7

27

128

 

 

Negyedik lépésben írjuk be az átváltani kívánt bináris szám jegyeit a sorrendre ügyelve! A legalsó sorba kerül a legnagyobb értékű jegy, majd a többi egyesével fölé.

Kitevő

Hatvány

Érték

Számjegy

Szorzat

0

20

1

1

 

1

21

2

1

 

2

22

4

1

 

3

23

8

0

 

4

24

16

0

 

5

25

32

1

 

6

26

64

0

 

7

27

128

1

 

Ötödik lépésben pedig az utolsó két kitöltött oszlop értékeit szorozzuk össze!

Így a helyesen kitöltött táblázat:

Kitevő

Hatvány

Érték

Számjegy

Szorzat

0

20

1

1

1

1

21

2

1

2

2

22

4

1

4

3

23

8

0

0

4

24

16

0

0

5

25

32

1

32

6

26

64

0

0

7

27

128

1

128

Ezek után csak az utolsó oszlopot kell összeadnunk! Sajnos a számológéphez szokott mai ifjúság ezt is gyakran elvéti. Ezért javaslom, hogy egyszerre csak 2-3 számot adjanak össze. A következő táblázatban az első három számot adtuk össze, majd külön képeztük az utolsó két – nem zérus szám - összegét:

Kitevő

Hatvány

Érték

Számjegy

Szorzat

Összeg

0

20

1

1

1

 

7

1

21

2

1

2

2

22

4

1

4

3

23

8

0

0

 

160

4

24

16

0

0

5

25

32

1

32

6

26

64

0

0

7

27

128

1

128

Így más a végső összeg is tévesztés nélkül megvan: 167.

 

Most ugyanezzel a táblázatos módszerrel számoljuk ki a következő bináris szám decimális értékét: 1110.10102!

Kitevő

Hatvány

Érték

Számjegy

Szorzat

Összeg

0

20

1

0

0

10

1

21

2

1

2

2

22

4

0

0

3

23

8

1

8

4

24

16

0

0

96

5

25

32

1

32

6

26

64

1

64

7

27

128

1

128

128

Végső összegzés: 10+96+128 = 106+128 = 234.

Tehát: 1110.10102 = 23410.

 

Használjuk fel ugyanezt a táblázatot egy oktális szám átváltására is! Az alapszám legyen a következő: 64318 !

Kitevő

Hatvány

Érték

Számjegy

Szorzat

Összeg

0

80

1

1

1

 

25

1

81

8

3

24

2

82

64

4

256

 

3328

3

83

512

6

3072

Végső összeg: 25+3328 = 3353. Tehát: 64318 = 335310.

 

Most hasonlóan járjunk el a következő hexadecimális számmal is: 2AD416 !

 

Kitevő

Hatvány

Érték

Számjegy

Szorzat

Összeg

0

160

1

4

4

 

212

1

161

16

D =13

208

2

162

256

A = 10

2560

 

10752

3

163

4096

2

8192

Így a végső összeg: 10964. Tehát: 2AD416 = 1096410 .

Megjegyzés: A számítástechnikai szakirodalomban nagyon gyakori, hogy a hexadecimális számrendszerű számot nem a hagyományos matematikai jobb alsó sarokba írt 16-tal jelölik, hanem a szám elé írt $ jellel, tehát 2AD416 = $2AD4.