Bináris számok Megérteni l; jel és vessző kódolás - Buzut
Minden nap negatív számokkal és tizedes számokkal állunk szemben. Bináris esetben nincs mínuszjel vagy tizedespont. Ebben az esetben hogyan kezeli ezt a csak binárisan működő gép ?

Megvitatjuk a szám pontosságának fogalmát is. Vagyis a tárolására kijelölt méret: hány jelentős számjegyet tárolhatunk.
Negatívumok kezelése
Amint a kivonásról beszélünk, rájövünk, hogy egy szám negatív is lehet. Ezért feltesszük magunknak a szám bináris tárolását. Nyilvánvaló, hogy a jelet bináris ábrázolásra kell lefordítania. Ehhez a bináris számok mindig fix méretű.
Tehát egy bájton kifejezett szám esetén a legjelentősebb bitet használjuk a jel kifejezésére. 0 + és 1 jelentése -. Ezért rájövünk, hogy egy bájton kódolt változó tartalmazhat -128 és +127 közötti értéket, ha negatívumokat enged meg. Ha meg van adva, hogy nincs aláírva, az értékek 0 és 255 között változnak.
Egy bináris szám negatívjának megtalálásához egyszerűen fordítsa meg a szám összes bitjét, és adjon hozzá egyet. Hozzáadunk egyet, mert csak egy nulla van. Ezzel elkerülhető a pozitív nulla és a negatív nulla, ami oda vezetne, hogy +0 ≠ -0, éppen ezért felmehetünk -128-ig és nem -127-ig.
Tehát a 0111 0100 pozitív szám (116dec). Negatívjának bináris ábrázolása 1000 1100, amely az összes fordított bit, plusz egy: 1000 1011 + 0000 0001. Az első bit, az előjel, automatikusan beáll.
Ezt a műveletet kettő komplementernek nevezzük. Ha kíváncsi vagy, a Wikipedia lap többet megtud a jelölés okairól.
Most, hogy tudod ezt, és ezt számtanban is tudod, A - B = A + (-B), megkönnyítheti az életét, hogy binárisan kivonásokat hajtson végre.
A vessző kezelése
A tizedespont utáni számok bináris számításához a logika megegyezik a tizedesjegyekkel. Tizedesjegyben a 0,1 értéke 1/10 vagy 10 -1; 0,01-10 -2 stb.
Logikailag binárisan a 0,1 bin értéke 2 -1 stb. Minden alkalommal kettővel osztunk. Így a vessző utáni első négy sorban:
- 0.5
- 0,25
- 0,125
- 0,0625
Csak arra kell kitalálni, hogy hogyan ábrázoljuk a vesszőt. A titok valóban a tudományos írásban rejlik.
Fix pont
Elég meghatározni a tizedespont helyzetét, és azonnal megismerjük a szám értékét. Például egy bájton tárolt számra, azaz nyolc bitre, ha önkényesen definiáljuk a tizedespont helyzetét közvetlenül a negyedik bit után, akkor tudjuk, hogy 0110 1001 = 0110,1001.
Rendkívül egyszerű. Ezt a módot rögzített pontnak nevezzük, mert a pont helyzete előre ismert. Ennek a módszernek az a hátránya, hogy néhány tizedesjegyű szám esetén jelentős tárhelyet veszít. Ha a szóban forgó szám 0110 1000, akkor három bitet veszítünk „feleslegesen”.
A rögzített pontot továbbra is használják. Az olcsó processzorokon - mikrovezérlőkön - csak egész számok és rögzített vesszők feldolgozására képesek, ez az egyetlen megoldás. Ezenkívül bizonyos helyzetekben a rögzített pont növelheti a végrehajtás sebességét vagy javíthatja a számítások pontosságát.
Lebegőpont
A rögzített pont okozta térvesztés problémájának leküzdésére lebegőpontos írási módszert alkalmazunk. Ez az írás a következőképpen ábrázolja a számokat: előjel × mantissa × kitevő alap . A vessző helyzete rögzítve van a mantiszában. Ezután lebegtetjük az exponens változtatásával.
Pontosan olyan, mint a tudományos és mérnöki jelölés. Így például azonos számjegyű, négy számjegyből tárolhatunk 1234-et, valamint 1.234-t vagy 0,1234-t, elegendő a kitevő használatával feltüntetni, hogy hová vesszük a vesszőt.
IEE754
Még mindig számos probléma van. Egyrészt hogyan lehet megegyezni a vessző helyzetében a mantissában? Másrészt, mivel az exponens lehet relatív egész szám (aláírt egész szám), a jelet ezen a szinten is kezelni kell.
Szabvány nélkül minden gyártó belső megvalósítást eredményez. Ezért a szoftverek egyik gépről a másikra történő átvitele bonyolult a lebegőpontos számok belső ábrázolásának és viselkedésének különbségei miatt.
Kerekítés
A szabvány négy típusú kerekítést határoz meg:
- negatív végtelen felé,
- a pozitív végtelen felé,
- nulla felé,
- a legközelebb.
Az első három forduló olyan számok ábrázolására szolgál, amelyek meghaladják a számábrázolási formátum tárolási vagy pontossági korlátját. Így, ha akár egymilliárdot el tudunk tárolni, és egy művelet eredménye meghaladja ezt a számot, akkor a meghirdetett eredmény a pozitív végtelen felé tart.
A legközelebbi a természetes kerekítési minta, amit arra gondolunk, amikor egy szám kerekítésére gondolunk. A szabvány meghatározza ehhez az üzemmódhoz, hogy ha a szám kettő között van, akkor azt a legközelebbi értékre kerekítik, a legkevésbé jelentős bit nulla (alapértelmezés szerint a kerekítési mód).
A pontosság
A pontosságot a mantissa mérete határozza meg. Ne keverje össze a pontosságot és az amplitúdót. A pontosságot a mantissa mérete határozza meg, míg az amplitúdót az alap kitevő mérete határozza meg.
Ha példaként vesszük a 10. bázis tudományos írását, akkor a tizedesjegy utáni három számjeggyel és egy számjegyre vonatkozó egész kitevõvel írott írás esetében a pontosság négy számjegy, de a nagyságrendeket ábrázolhatjuk + 1,999M között. -1.999M-ig.
Tudomásul vesszük azonban, hogy nem leszünk képesek egymilliárdonként legfeljebb egységnyi pontossággal rendelkezni. A maximálisan tárolható érték 1.999e9, és még kisebb értéken is, például 1.123e9, a pontosság milliók alatt nem érhető el: 1.123e9 = 1.123.000.000.
Természetesen a nagyságrend csökkentésével finomabb pontosságot kapunk. Tehát 1,123e2 = 112,3 és 1,123e-9 egyenlő 0,000000001123.