Mondanátok példát arra, hogy a programozó mikor használja a kettes számrendszert?
Vegyél egy dolgot, aminek van 32 igen/nem alapú tulajdonsága (nem nehéz ilyent találni).
Nem mindegy, hogy ezt 32 db boolean típusban tárolod (ami nyelvtől függen 1-4 byte-os is lehet), vagy egy 4 byte-os változóban, aminek a bitjei jelölik az 1-1 tulajdonságot.
C-ben ugye nincs, a legkisebb címezhető egység az 1 byte.
C++-ban szintén 1 byte.
Java-ban 4 byte.
A többinek magad is utána tudsz nézni.
Leggyakrabban alacsony szintű programozási nyelvek, módszerek használatakor szükséges ilyen ismeret.
Pl. mikrovezérlők, programozható logikai vezérlők programozásánál. Ezeknél mindennapos.
Enum-ok használata Flag-ként szintén binárosban zajlik.
Ezenkívül szintén nem árt, hogy pl törtszámokat ne kezdjél egyenlőségvizsgálattal ellenőrizni, mert tanultad, és tudod, hogy az egész tizedes törtek legtöbbször végtelen kettedes törteket adnak, és pl két osztás tört eredménye ritkán egyenlő - néha igen, néha nem, éppen hogyan kerekít, és ez biza kemény hibákat kiadhat :)
Ezenkívül a színeknél se árt, hogy pl egy 32 bites számba hogyan tudsz belepakolni 4 színt, és hogyan tudod azokat visszakonvertálni ARGB formátumba.
C/C++ debug során gyakran kell memóriacímeket és értékeket nézni, ami mondjuk 16-os számrendszer, de az közelebb van a ketteshez, mint a tízeshez.
A programozás oktatásában viszont azért fontos a kettes számrendszer, mert ebben működik a számítógép, és a bool algebra gyökeresen más, mint amit a tízes számrendszerben megszoktál. Egy gépben nincs olyan alapelem, ami tudna összeadni vagy szorozni, minden olyan logikai kapukból kell felépíteni, amik biteket kapnak bemenetnek. Ez hatással van az adattárolásra (említett kerekítési hibák), a műveletek végzésére (nincs egylépéses osztási algoritmus, ami miatt az osztás mindig lassabb, mint a szorzás), vagy a logikai műveletekre (bitenkénti logika).
Viszont minél magasabb szintű egy nyelv, annál kevésbé fogsz ezzel találkozni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!