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, vagy 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.

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 – egyenlő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.