Az átalakítás - hasznos anyagok - Elektronikai és berendezéseket a mikron

A mindennapi életben van dolgunk közönséges számokat 0-9, amelynek van egy jelentős számú - kétjegyű, háromjegyű, négy-, öt-, hat-, nyolc-, húsz, stb -valued. Ezek a számok kerülnek bemutatásra úgynevezett, decimális. Miért? Mert jelentése bármennyi 10 jegyű - 0-tól 9 Tudjuk, hogy a gyermekkori méret, de nem hiszem, hogy ez tizedes. Ez kényelmes vele dolgozni.







Ugyanakkor részt veszünk a programozás mikrokontroller, ami sokkal kényelmesebb dolgozni, amihez számos más formátumok - bináris és hexadecimális. Nézzük őket részletesen.

Ahogy már bizonyára kitalálta, nevük származik számjegyek száma, hogy képviselje ezeket a számokat. Ez így van! Bináris formátum magában manipuláció csak két számjegy - nulla és egy.

Ez a formátum szoktunk használni, ha dolgozik, a kikötők és regiszterek a mikrokontroller, mivel ez a módszer az ábrázolás a számukra - a legkényelmesebb - mi csak látni egy kicsit a port vagy regisztrációhoz beállítva, és egy reset. Nyilvántartások és portok általában oktett. A számok bináris formában is, a hossza 8 bit, de néha jelentéktelen vezető nullák nem kerülnek rögzítésre.

Ahhoz, hogy megértsük, hogy a formák bináris elemzik a következő példát:

Vegyünk minden számot. Ahhoz, hogy a dolgok egyszerű, hogy kezdődik, legyen az szám 183. A bináris formában, ugyanazt a számot fog kinézni% 10110111

A „%” kifejezés alatt a bináris szám.

Miért olyan, kérdezed? Mert a szíve létrehozása bináris szám két, hatványát pozíció száma nulla vagy egy bináris szám. Talán félek írva, de valójában semmi bonyolult. Minden képesek építeni számos fokozat, azt hiszem. Formula átalakítás egy bináris szám decimális a következőképpen:

Azaz, szorzás 0 adja nulla, és a szorzás egy két, hogy a hatalom a számok ad a pozíció egy bizonyos számot. Adunk hozzá, és kap egy eredményt. Az inverz transzformáció végezzük elosztjuk 2.

Jellemzően hexadecimális szám kerül rögzítésre a két karakteres formában.

Térjünk vissza a juhok, inkább az a szám, hogy egy példát - 183

Mint láttuk, bináris formában, úgy néz ki, mint% 10110111

Most, hogy ez a forma 16 hexadecimális szám, meg fogjuk találni egy táblázatot a nagy majszol (1011%) ez a szám, és az alsó majszol (0111%). És a készítmény 16 szám decimális formátumban - $ B7

Ez egyszerű! A formátum ez sokkal kényelmesebb, hogy írjon nagy számok állnak, így kevesebb helyet foglal. Amikor beállítja az mikrokontroller letölt egy programot ebben a formátumban. Kéri továbbá, HEX-fájlt.

Így találkoztunk kulcsfontosságú adatokat prezentációformátumokba - számítási rendszerekben. A gyakorlatban vannak olyan esetek, amelyek megkövetelik a számok konverzióját egy speciális formátumban. Úgy tűnik, hogy az egyik, de nem egészen. Vagyis úgy tűnik, akár bináris vagy decimális vagy hexadecimális formában, de egy kicsit más értelmet. Ez körülbelül BCD formátumban, vagy más szavakkal - BCD (binárisan kódolt decimális) formátumban. Ebben a formában minden tizedes (!), A kisülés formájában rögzítik, egy bináris falat. Tudjuk, hogy majszol vehet maximum 16 értékeket. Sokan nem kell. Szükségünk van egy összesen 10 értékek - 0-9.







A fentiek alapján, van:

Száma 183 bináris kódolt decimális formátumban fog kinézni

Ha most átalakítani a kapott számot vissza tizedes, akkor egy teljesen más eredmény

A gyakorlatban általában megkövetelik a számot két jelentős tizedesjegy - általában egy valós idejű órát. Ott működik a 0-tól 59. Ez - két számjeggyel. De ebből a példából fogunk építeni.

Nem lesz kötve egy meghatározott szintaxis, mivel a műveletek ugyanazok minden Basic-fordító.

Nos, hadd négy változó:

BCDOUT - Byte típusú változó tárolja a konverzió eredménye egy bináris számot BCD formátumban

BCDIN - típusú változó Byte, tartalmazó átváltandó értéket a bináris formátumú BCD (vagy más) (azonnal emlékezni, hogy ez a szám írt decimális számként számot jelent írt bináris kódolt decimális formátumban)

BININ - egy változó típusú Byte, amely a bináris érték alakítjuk BCD (fogjuk rögzíteni azt decimális formában kedvéért)

BINOUT - típusú változó Byte, amely tartalmazza az eredménye az átalakítás BCD bináris formátumban

Változó BININ BCDIN és értékeket (jó, tegyük fel, vettünk két USART ezek a számok):

BCDIN = 47 „Let 47 perc BCD formátumban

BININ = 23 „Legyen 23 óra

  • Nézzük átalakítani BCD bináris:

Ahhoz, hogy jobban megértsük a folyamatot képviseli az eredeti szám bináris formátumban. Kérjük, majszol a háttérvilágítás, hogy megértsük, mi történik velük

BINOUT = BCDIN >> 4 „mozog a magas tetrád helyére az elsődleges és szerezzen BCDOUT száma 2 (% 00.000.010). Szorozza meg 10. mert kivonat magas majszol tartalmazó tucat számokat. BINOUT = BINOUT * 10 „Most van egy sor 20 (% 00.010.100) Most kivonat az alsó falat. Ez úgy történik, egyszerűen: végrehajt egy bitenkénti logikai ÉS A szám 00001111% (vagy $ 0F). Bitenkénti ÉS a nulla értéke ismét 0, és az egység - ami volt, ezt megelőzően logikai művelet. BCDIN = BCDIN $ 0F „a számot 00001111% (vagy 15 másik) - Mi már egyenlővé nullára magas majszol változó BCDIN Most adjuk hozzá a kapott két számot:

Az egész művelet felírható egy sorban:

BINOUT = ((BCDIN >> 4) * 10) + (BCDIN $ 0F). de jobb, hogy törni fel több van, mert ez a fajta működés tovább tart a program memória

  • Most végre konverziót a bináris szám binárisan kódolt decimális.
BININ =% 00010111

Mivel minden majszol a BCD formátumban tartalmaz egy számjegyet, és tudjuk, hogy a bináris szám - egy kétjegyű, meg kell hívni a számot tíz és az egységek számát, majd ki őket a BCD-számot.

Ahhoz, hogy távolítsa el a több tucat egyszerűen elosztjuk a bináris számot 10

Kapunk a 2-es szám, mint a legfiatalabb 3 dobni elosztjuk (dolgunk egész matematika).

Most a szám% 00.000.010.

De kettes nálunk - ez a szám egy tucat! Tehát meg kell mozgatni, hogy a magas majszol:

Most, hogy távolítsa el a kisebb szám (az egységek száma - 3) kell végrehajtani egy műveletet nevű modult Picbasic. Ez a művelet visszaállítja a fennmaradó részlege, de nem az, amit szoktuk gondolni. Ezt megelőzően, osztottuk a szám 23 és 10 van 2, és most, hogy a 3-as szám - mi marad a szokásos osztás 10

Most hozz létre BCD szám:

BCDOUT = BCDOUT + BININ = 32 + 3 = 35 - száma bináris kódolt decimális - nem ugyanaz a dolog, hogy történt a fenti példában.

Ismét minden van írva a fenti lehet összefoglalni egy sorban.

BCDOUT = ((BININ / 10) <<4 ) + ( BININ // 10 )

De a tapasztalat azt mutatja, hogy ha törik fel külön kifejezés, rövid kifejezések, az általuk elfoglalt sokkal kevesebb a program memória.

Mégis szeretném hangsúlyozni, hogy a BCD formátumban - nem ez a számítási rendszer. Ez a szám formátuma miatt. A szám ebben a formátumban lehet írni bináris és hexadecimális és decimális. Csak azt kell megjegyezni, hogy ez a szám azt jelenti, és milyen formában meg van írva.




Kapcsolódó cikkek