Poglavje 3: Operacije z binarnimi števili v mikroprocesorju

Poglavje 3 Operacije Z Binarnimi Stevili V Mikroprocesorju



Poglavje 3: Operacije z binarnimi števili v mikroprocesorju

3.1 Uvod

V računalniku se aritmetične operacije izvajajo v 8-bitih, 16-bitih, 32-bitih ali 64-bitih. Število, kot je 3 v dvojiški obliki, je 11. Če naj se operacija izvede v 8 bitih, se to šteje za 00000011; pred njim z 0 ničlami.







Za binarno število, kot je 10000101, je najpomembnejši bit bit na skrajni levi strani. V tem primeru je 1. Najmanj pomemben bit je skrajni bit na desni, ki je za število še vedno 1. Najpomembnejši bit je okrajšano MSB. Najmanj pomemben bit je skrajšano LSB.



Binarni digiT je skrajšano BIT in je preprosto zapisan kot bit. V številu 10010011 je vsaka ena ali nič bit. Skupina štirih bitov se imenuje nibble. Skupino osmih bitov imenujemo bajt. Bajt je sestavljen iz dveh grizkov. Nižji zalogaj je zalogaj za LSB, višji zalogaj pa za MSB.



Skupina 8 bitov, 16 bitov, 32 bitov ali 64 bitov se imenuje beseda, če ta skupina posreduje informacije, ki presegajo samo navedbo števila. Skupina se na primer imenuje beseda, če gre za nizkonivojsko navodilo v računalniku. Obstaja tudi beseda 24 bitov, vendar se danes ne uporablja pogosto.





Endianness se nanaša na vrstni red, v katerem bajti tvorijo besedo. Razmislite o 24-bitni besedi – 100100001111010100100010. Ta beseda je sestavljena iz treh bajtov, ki so:

10010000 11110101 00100010



Najpomembnejši bajt je skrajni levi bajt. Kadar je bajt na skrajni levi najpomembnejši bajt in bajt na skrajni desni strani najmanj pomemben bajt, se to imenuje predstavitev besede Big Endian. Predstavitev Little Endian je nasprotna.

Računalniški pomnilnik je serija celic, vsaka celica pa vsebuje bajt. Prva celica v pomnilniku računalnika je za bajt 0, druga za bajt 1, tretja za bajt 2 in tako naprej. Z velikim endianstvom in za prejšnjo besedo je najpomembnejši bajt shranjen v celici bajta 0, srednji bajt je shranjen v celici bajta 1, najmanj pomemben bajt pa je shranjen v celici bajta 2. To pomeni, da je v spodnji pomnilniški celici pomembnejši bajt.

Prejšnjo 24-bitno besedo lahko zapišemo v obratnem vrstnem redu bajtov, kot sledi:

00100010 11110101 10010000

Zdaj je najmanj pomemben bajt na skrajni levi, najpomembnejši bajt pa na skrajni desni strani. Če je bajt na skrajni levi najmanj pomemben bajt in je bajt na skrajni desni najpomembnejši bajt, je to Little Endian predstavitev besede. Z majhnim številom koncev in za prejšnjo besedo je najmanj pomemben bajt shranjen v celici bajta 0, srednji bajt je shranjen v celici bajta 1, najpomembnejši bajt pa je shranjen v celici bajta 2. To pomeni, da je v spodnji pomnilniški celici manj pomemben bajt.

Endianness se ne uporablja za bite v bajtu. Prav tako se ne uporablja za grizljanje v bajtu. Uporablja se le za vrstni red bajtov.

Številska premica
Število brez predznaka je pozitivno število. Pozitivna števila so števila od nič navzgor. Obstajajo tudi negativna števila. Pozitivna in negativna števila so lahko predstavljena na številski premici. Naslednja številska vrstica prikazuje pozitivna in negativna cela števila (cela števila) blizu ničle:

Negativna števila se zmanjšujejo od nič navzdol (levo). V mnogih primerih se nič šteje za pozitivno. Vendar pa se v nekaterih situacijah šteje za negativno. Zato sta v spodnjem oštevilčenju v diagramu pred ničlo znaka plus in minus. Če je število pozitivno, lahko njegov predznak izpustimo; to velja za zgornje oštevilčenje v diagramu. Znaka minus pred negativnim številom nikoli ne izpustimo.

3.2 Seštevanje binarnih števil

V dodatku:

A + B = S

A se imenuje augend, B se imenuje seštevek in S se imenuje vsota.

Razmislite o naslednjem seštevanju dveh pozitivnih števil v osnovi dve:

Pri osnovi dve sta edini možni števki 0 in 1. Seštevanje pri osnovi 2 je podobno seštevanju pri osnovi deset, vendar je dve pri osnovi dve ena-ničla (10). Ko je vsota dveh bitov v stolpcu 10, se zapiše 0 in 1 prenese v takoj levi stolpec; ki se doda vsoti obeh bitov tam. Ko je skupna vsota tri, to pomeni 11 v osnovi dve. Desni 1 od 11 je zapisan, levi 1 pa se prenese k vsoti bitov v neposrednem levem stolpcu. V obeh primerih se 1, ki se prenaša levo, imenuje nosilec.

Če beremo prejšnjo seštevalno tabelo z desne, je v drugem stolpcu (z desne) prenos, ki izhaja iz 1+1 = 10. V tretjem stolpcu je prenos, ki izhaja iz 1+1+ prenosa 1 = 11. V četrtem stolpcu je prenos, ki izhaja iz 0+1+ prenosa 1 = 10. V petem stolpcu ni prenosa, ker je vsota 0+0+ prenosa 1 = 1. ostali stolpci ne vključujejo prenosa.

Štetje stolpcev se začne z desnega konca. Pri 16-bitnem dodajanju lahko pride do prenosa iz osmega stolpca v deveti stolpec (premik levo). Naslednja tabela to ponazarja:

Aritmetične in logične operacije potekajo v mikroprocesorju na matični plošči računalnika.

Za 8-bitni besedni računalnik strojna oprema ne more samodejno preiti od osmega bita do devetega bita. Torej, če želite dodati dve 16-bitni skupini v tak računalnik, je treba seštevanje opraviti dvakrat v osem-osem bitnih parih. Prenos se premika in izvaja programska oprema (programiranje).

Če želite sešteti dve števili, ju lahko pred seštevanjem najprej pretvorite v obliko komplementa njunih dveh (glejte spodaj).

3.3 Komplement dvojke in njegovo odštevanje binarnih števil

Na matični plošči računalnika je pomnilnik, mikroprocesor in druga vezja. Pomnilnik je niz osembitnih celic. Za bajt gre vsak bit v celico. Mikroprocesor ima nekaj lokacij pomnilniškega tipa. Te lokacije pomnilniškega tipa imenujemo registri. Tako lahko v računalniku skupine bajtov začasno shranimo v pomnilnik ali v registre mikroprocesorja.

V kateri koli od teh shramb lahko vsaka celica sprejme 1 ali 0 in nič drugega. V življenju obstajajo pozitivna in negativna števila. Pozitivno število se začne z znakom plus (+), negativno število pa z negativnim znakom (-). Če je predznak izpuščen, se število šteje za pozitivno število.

Da bi rešili ta problem označevanja predznaka števila v računalniku, so cela števila shranjena v obsegih. Cela števila so cela števila. Če se za shranjevanje obsega možnih števil uporablja osem bitov, se skrajni levi bit uporabi kot bit predznaka. Če se število začne z 0, je število pozitivno število. Če se začne z 1, je število negativno število. Če se za shranjevanje obsega možnih števil uporablja šestnajst bitov, se kot predznakovni bit uporabi skrajni levi bit. Če se število začne z 0, t je število pozitivno število. Če se začne z 1, je število negativno število. Števila v tej obliki se imenujejo predznačena števila.

V praksi lahko obstajajo predpisana števila za 8 bitov, 16 bitov, 32 bitov in 64 bitov. Večje kot je število bitov uporabljeno, večji je obseg možnih števil, ki jih je mogoče shraniti.

Cela števila dveh komplementov
Z dvojnim komplementom so pozitivna števila običajna števila za štetje, le da je skrajna leva številka 0. Če želite dobiti ustrezno negativno število za katero koli dano pozitivno število, obrnite vsak bit v številu in rezultatu dodajte 1. Invert ali komplement 0 je 1. Invert ali komplement 1 je 0. Naslednje tabele prikazujejo komplementna števila nekaterih dveh v njihovih obsegih:

Tabela 3.31
Dva komplementna cela števila v dveh bitih
Binarno decimalno
01 +1
00 +0
enajst -1
10 -2

Pozitivni dvojiški števili sta 00 in 01 (to je nič in ena). V skrajnem levem bitu ničla kaže, da so pozitivna števila. 00 je nekako v sredini razpona. Da dobimo -1, ugotovimo, da je invert števila 01 10. Če temu dodamo 1 (skrajno desno), dobimo 11.

Ker sta uporabljena dva bita, ostane le en bit za predstavitev števil v obsegu, ki je sestavljen iz števil +1, +0 in -1, ki ustrezajo 01, 00 in 11. Prvi bit označuje znak. Zgodi se, da 10 za +2 ni med temi tremi binarnimi številkami. 10 se začne z 1, kar pomeni, da mora biti negativno število v dvojnem komplementu. Torej je 10 vključeno v obseg, kar pomeni -2.

Z dvema bitoma v komplementu dveh je število vseh celih števil (pozitivnih in negativnih), ki jih je mogoče predstaviti, 2 2 = 4 in ne 2 2 -1 = 3. Niansa izhaja iz vključitve zadnjega negativnega števila, ki je negativno od 2 številka z – 1. V tem primeru -2 2-1 = -2 1 = -2. V območju dveh komplementarnih števil v 2 bitih ni +2.

Tabela 3.32
Dva komplementna cela števila v štirih bitih
Binarno decimalno
0111 +7
0110 +6
0101 +5
0100 +4
0011 +3
0010 +2
0001 +1
0000 +0
1111 -1
1110 1110
1101 -3
1101 -3
1100 -4
1011 -5
1010 -6
1001 1001
1000 -8

Pozitivna binarna števila so od 0000 do 0111 (to je od nič do sedem). V skrajnem levem bitu ničla kaže, da so pozitivna števila. 0000 je nekako v sredini razpona. Da dobimo -1, je invert števila 0001 1110. Če temu dodamo 1 (skrajno desno), dobimo 1111. Da dobimo -2, je invert števila 0010 1101. Če temu dodamo 1 ( od skrajne desne) daje 1110. Druga negativna binarna števila, kot je -3 do -7, so določena podobno.

Ker so uporabljeni štirje biti, ostanejo trije za predstavitev števil v obsegu, ki so +7, +6, +5, +4, +3, +2, +1, +0, -1, -2, - 3, -4, -5, -6 in -7, ki ustrezajo 0111, 0110, 0101, 0100, 0011, 0010, 0001, 0000, 1111, 1110, 1101, 1100, 1011, 1010 in 1001.

-8, ki ustreza 1000, je treba obravnavati ločeno. Prvi bit za vsa ta števila označuje znak 0 za pozitivna števila in 1 za negativna števila. Zgodi se, da 1000 ni med temi štirinajstimi binarnimi številkami. 1000 se začne z 1, kar pomeni, da mora biti negativno število, kar zadeva komplement dvojke. Torej je 1000 vključeno v obseg, kar pomeni -8.

S štirimi biti v komplementu dveh je število vseh celih števil (pozitivnih in negativnih), ki jih je mogoče predstaviti, 2 4 = 16 in ne 2 4 – 1 = 15. Niansa izhaja iz vključitve zadnjega negativnega števila, ki je negativno od 2 numberWidth – 1. V tem primeru -2 4 -1 = -2 3 = -8. V območju številk ni +8.

Prejšnjo analizo za dva, štiri in širše bite v komplementu dveh je mogoče uporabiti za 8-bitna, 16-bitna, 32-bitna in 64-bitna binarna števila.

Komplement dveh žrtvuje prvi (skrajni levi) bit za znak 0 za pozitivno število in 1 za negativno število. Za 'n' bitno široko skupino bitov sta 2 n skupna pozitivna plus negativna števila. Bilo bi 2 n -1, če ne bi bilo vključenega zadnjega srečnega (najmanjšega) negativnega števila. Največje pozitivno število je +2 n-1 -1 in najmanjše negativno število je -2 n-1 -1. Bilo bi -2 n-1 -1, če ne bi bilo za srečneža -2 n-1 vključeno.

Odštevanje števil v komplementu dveh
Pri odštevanju:

A – B = D

A se imenuje minuend, B se imenuje subtrahend, D pa se imenuje razlika.

Za odštevanje enega pozitivnega binarnega števila od drugega pozitivnega binarnega števila je minuend zapisan v komplementu dvojke, odštevanec pa se pretvori v vrednost komplementa negativne dvojke. Torej matematična izjava postane:

A+ – B = D

Z drugimi besedami, pri odštevanju komplementa dveh se subtrahend pretvori v negativno število in nato doda odštevancu.

Primer 3.31:
Ovrednotite naslednji decimalni izraz v komplementu dveh z uporabo štirih bitov:

6 – 4

rešitev:
Binarno število za 6 je 110. V 4-bitnem komplementu dvojke je 0110. Binarno število za +4 je 100. V 4-bitnem komplementu dvojke je 0100. 0100 je treba pretvoriti v negativno 4 v dvojki komplement na naslednji način: Komplement ali inverzija 0100 je 1011. Če temu dodamo 1 z desnega konca, kot smo naredili pri seštevanju, dobimo 1100. Torej je decimalni izraz:

6 – 4, ki postane:

0110 – 0100, kar je

0110 +(– 0100) = 0110 + 1100 izvedeno kot v prejšnjem razdelku seštevanja kot:

Opomba: 0110 +(– 0100) je enako kot 6 + – 4

Z odštevanjem komplementa dveh se kakršen koli prenos za zadnjim stolpcem levo pri seštevanju zavrže. Pri decimalnem odštevanju je matematični stavek:

6 – 4 = 2

Če naredimo isto stvar v komplementu dveh, je odgovor 0010, kar je +2 v binarnem štetju komplementa dveh. Pri prejšnjem odštevanju se od večjega števila odšteje manjše število. V naslednjem primeru se večje število odšteje od manjšega števila. V tabeli 3.32 si lahko ogledate, ali je 0010 res komplement dvojke, ki je enakovreden +2.

Primer 3.32:
Ovrednotite naslednji decimalni izraz v dvojnem komplementu s štirimi biti:

4 – 6

rešitev:
Binarno število za 4 je 100. V 4-bitnem komplementu dvojke je 0100. Binarno število za +6 je 110. V 4-bitnem komplementu dvojke je 0110. 0110 je treba pretvoriti v minus 6 v komplementu dvojke kot sledi: Komplement ali inverzija 0110 je 1001. Če k temu dodamo 1 z desnega konca, kot smo storili pri prejšnjem seštevanju, dobimo 1010. Torej je decimalni izraz:

4 – 6, ki postane:

0100 – 0110, kar je

0100 +(– 0110) = 0100 + 1010 izvedeno kot v prejšnjem razdelku seštevanja kot:

Opomba: 4+ – 6 je enako kot 0100 +(– 0110).

Z odštevanjem komplementa dveh se kakršen koli prenos za zadnjim stolpcem levo pri seštevanju zavrže. Pri decimalnem odštevanju je matematični stavek:

4 – 6 = -2

Če naredimo isto stvar v komplementu dveh, je odgovor 1110, kar je -2 v binarnem štetju komplementa dveh. V tabeli 3.32 lahko preverite, ali je 1110 res komplement dvojke, ki je enakovreden za -2.

3.4 Množenje binarnih števil

V izjavi:

A x B = P

A imenujemo množitelj, B imenujemo množitelj, P pa produkt. Izraz A x B pomeni večkratno seštevanje A, B, ko sta A in B cela števila (cela števila).

Množenje v dvojiški obliki je enako množenju v decimalni obliki. Vendar se namesto v decimalni obliki izvaja v dvojiški obliki. Množenje decimalnega izraza 42 x 10 se izvede v dvojiški obliki, kot sledi, kjer je 42 10 = 101010 2 in 10 10 = 1010 2 :

4 števila, ki se seštejejo, se imenujejo delni produkti. Odgovor je izdelek. Seštevanje delnih produktov poteka na enak način, kot je razloženo prej.

Množenje je mogoče videti tudi na naslednji način: pri tem množenju z osnovo dve, če je bit (številka) v množitelju 1, je najmanj pomemben bit njegovega delnega produkta najmanj pomemben bit množitelja, ki je pretipkan neposredno pod njim; ostali bitovi množenika pa se ponovijo v levo. Pri tem množenju z osnovo dve, če je bit (števka) v množitelju 0, je njegov delni produkt sestavljen iz 0 z najmanj pomembnim bitom 0 neposredno pod njim. Število vseh ničel je število bitov v množitelju.

3.5 Deljenje binarnih števil

V izjavi:

A ÷ B = Q

A se imenuje dividenda, B se imenuje delitelj, P pa se imenuje količnik. Kvocient lahko spremlja ostanek. Izraz A ÷ B pomeni, kolikokrat lahko dodamo B, da dobimo A ali se mu približamo, tako da je ostanek 0 ali manjši od B.

Delitev je možna na več načinov. Oddelek, ki je prikazan tukaj, je oddelek za obnovo.

Obnova divizije
To je metoda dolgega deljenja, ki se je učijo v šolah. Če je 237 deljeno s 6, je odgovor 39 ostanek 3. 237 10 v osnovi 2 je 11101101 2 in 6 10 v osnovi 2 je 110 2 . 39 10 v osnovi 2 je 100111 2 in 3 10 v osnovi 2 je 11 2 .

Torej, 11101101 2 deljeno s 110 2 daje 100111 2 ostanek 11 2 v bazi dva. Pri obnovitveni metodi so binarna števila navadna števila in niso nujno v dvojnem komplementu. Naslednja struktura deli 11101101 2 s 110 2 dati 100111 2 ostanek 11 2 :

Odštevanje poteka običajno in ne z uporabo komplementa dveh. Ker je to osnova dve, je izposoja dva in ne deset. Delne dividende so 10, 101, 1011, 1010 in 1001. 11 je ostanek. Ker ima delitelj tri števke, se delitev izvede v bistvu v skupinah treh števk iz dane dividende. Kvocient je celo število (celo število) in je za ta problem 100111. Rezultat količnika in ostanka je pričakovan.

3.6 Aritmetične operacije s programsko in strojno opremo

Matična plošča računalnika ima uro. Tiktaki ure se imenujejo impulzi. Pri vsakem taktnem impulzu se na različnih mestih na matični plošči sprejme ena ali več odločitev; in to je povezano s programiranjem (programsko opremo).

Znotraj mikroprocesorja sta dve vrsti vezij, imenovani: kombinacijska logična vezja in zaporedna logična vezja. Obstaja še ena vrsta vezja, imenovana multiplekser. Seštevanje, množenje in deljenje lahko potekajo znotraj enega urnega intervala z uporabo kombinacijske logike (vezja). Medtem ko programiranje (programska oprema) sprejme odločitev pri vsakem taktnem impulzu z uporabo zaporednih logičnih vezij in multiplekserjev.

Ko se odštevanje izvede z uporabo komplementa dveh, sta potrebna vsaj dva urna impulza. Ob prvem taktnem impulzu multiplekser kanalizira subtrahend na niz vrat NOT (ena vrata NOT na številko). Pri drugem taktnem impulzu kombinacijska logika doda 1 izhodu vrat NOT in nadaljuje z dodajanjem nastalega subtrahenda in minuenda. Vse to dodajanje se lahko zgodi v enem urnem intervalu.

Seštevanje, množenje in deljenje je še vedno mogoče odpraviti s programiranjem z uporabo tabel resnice. Vendar to ni zajeto v tem spletnem kariernem tečaju.

3.7 Logične operacije v mikroprocesorju

IN, ALI, XOR in Invert

IN
Naslednja tabela ponazarja bitni IN. To pomeni, da se za dve različni binarni števili ustrezni biti dodajo IN na podlagi tabele resnic IN:

Premikanje od leve proti desni, 1 IN 1 = 1; 0 IN 1 = 0; 0 IN 0 = 0; 1 IN 0 = 0; in tako naprej v skladu s tabelo resnic IN.

ALI
Naslednja tabela ponazarja bitni ALI. To pomeni, da se za dve različni binarni števili ustrezni biti združijo z ALI na podlagi tabele resnic ALI:

Premik od leve proti desni, 1 ALI 1 = 1; 0 ALI 1 = 1; 0 ALI 0 = 0; 1 ALI 0 = 1; in tako naprej v skladu s tabelo resničnosti ALI.

PROST
Naslednja tabela ponazarja bitni izključni ALI. To pomeni, da se za dve različni binarni števili ustrezni biti izvedejo XOR na podlagi tabele resnic XOR:

Premik od leve proti desni, 1 XOR 1 = 0; 0 XOR 1 = 1; 0 XOR 0 = 0; 1 XOR 0 = 1; in tako naprej v skladu s tabelo resničnosti XOR.

Obrni (NE)
Naslednja tabela ponazarja bitni NOT (invert). To pomeni, da je za eno binarno število tokrat vsak bit obrnjen na podlagi tabele resnic NOT:

Premikanje od leve proti desni, NE 1 = 0; NI 0 = 1; NI 0 = 1; NI 1 = 0; in tako naprej v skladu s tabelo resnic NOT.

Premik desno ali levo

Premik desno
Naslednje binarno število je premaknjeno za 3 bitne položaje v desno, pri čemer so ničle vstavljene v izpraznjene bitne položaje na levi:

Prestavljanje je možno za eno, dve, tri, štiri itd. mesta.

Premik levo
Naslednje binarno število je premaknjeno za 3 bitne položaje v levo, pri čemer so ničle vstavljene v izpraznjene bitne položaje na desni:

Prestavljanje je možno za eno, dve, tri, štiri itd. mesta.

Vrtenje v desno ali levo

Vrtenje je podobno prestavljanju. To se naredi en bit naenkrat. Pri vrtenju v desno nastavki, ki zapustijo desni konec, ne odpadejo kot pri premikanju; zamenjajo izpraznjene delce na levi, enega za drugim. Pri vrtenju v levo nastavki, ki zapustijo levi konec, ne odpadejo kot pri premikanju; zamenjajo izpraznjene bite na desni, enega za drugim.

Zavrti desno
Naslednje binarno število je zasukano za 3 bitne položaje v desno:

Vrtenje je možno za eno, dve, tri, štiri itd. mesta.

Vrti levo
Naslednje binarno število je zasukano za 3 bitne položaje v levo:

Vrtenje je možno za eno, dve, tri, štiri itd. mesta.

3.8 Nabor znakov ASCII in njegove kodne vrednosti

ASCII pomeni 'ameriška (ZDA) standardna koda za izmenjavo informacij'. Predstavljajte si tipkovnico s 96 tipkami. To je idealna tipkovnica, kjer se tipke za velike črke razlikujejo od tipk za male črke. Vsaka druga tipka predstavlja znak, ki ga najdemo na angleški (ZDA) tipkovnici. Znaki in kode (ustrezne številke za znake) so navedeni v nadaljevanju:

V tej tabeli je prvih 32 znakov (vključno z znakom z 00 16 = 0 10 koda) so nenatisljivi znaki. So kontrolni liki. Ne vidijo se na ekranu (monitorju), kjer je vse enako. Imajo samo učinke. O tem se pogovorimo pozneje.

Ostali znaki so tiskarski; se vidijo na zaslonu. Obstaja 128 znakov ASCII. 2 7 = 128. 1.111.111 2 = 127 10 . 7 v 2 7 pomeni 7 bitov.

Zdaj, 1111111 2 + 1 2 je enako kot:

Tukaj, 10.000.000 2 = 128 10 . Obstaja 128 10 znakov v prejšnjem seznamu (tabeli) znakov ASCII. To vključuje ničelni znak, katerega koda v osnovi šestnajst (šestnajstiško) je 00, kar je enakovredno 0 v osnovi deset.

Ker je skupaj 128 znakov, dobimo 128 minus 32 nenatisljivih znakov 96 natisljivih znakov. V tem razdelku se predpostavlja, da obstaja idealna tipkovnica s 96 znaki, ki so znaki za tiskanje. Na tej idealni tipkovnici se tipke za velike angleške znake razlikujejo od tipk za male angleške znake.

Vsak znak na tipkovnici je predstavljen z osnovnim številom 7 bitov, ki niso prikazani na seznamu. Veliko črko »N« na primer predstavlja sedem bitov 1001110 v osnovi 2. Za pretvorbo 1001110 2 na osnovo 16, pred njo postavite 0 in združite rezultat v štiribitne podskupine, kot sledi:

| 0100 | 1110 | 2 = | 4 | E | 16

To je 01001110 2 = 4E 16 . Za pretvorbo 4E 16 za osnovo deset naredite naslednje:

4 x (16) 1 + E x (16) 0 = 4 x 16 + E x 1 = 4 x 16 + 14 x 1 = 64 + 14 = 78 10

Desno od 'N' na seznamu (tabeli) je šestnajstiško število 4E in decimalno število 78.

Kot drug primer je znak »[« predstavljen s sedmimi biti 1011011 v osnovi 2. Za pretvorbo 1011011 2 na osnovo 16, pred njo postavite 0 in združite rezultat v štiribitne podskupine, kot sledi:

| 0101 | 1011 | 2 = | 5 | B | 16

To je 01011011 2 = 5B 16 . Če želite pretvoriti 5B16 v osnovo deset, naredite naslednje:

5 x (16) 1 + B x (16) 0 = 5 x 16 + B x 1 = 5 x 16 + 11 x 1 = 80 + 11 = 91 10

Na desni strani »[« na seznamu (tabeli) je šestnajstiško število 5B in decimalno število 91.

Kot še en primer je znak za decimalno število '5' predstavljen s sedmimi biti 0110101 v osnovi 2 in ne 0000101 v osnovi 2. Za pretvorbo 0110101 2 na osnovo 16, pred njo postavite 0 in združite rezultat v štiribitne podskupine, kot sledi:

| 0011 | 0101 | 2 = | 5 | B | 16

To je 00110101 2 = 35 16 . Če želite pretvoriti 3516 v osnovo deset, naredite naslednje:

3 x (16) 1 + 5 x (16) 0 = 3 x 16 + 5 x 1 = 3 x 16 + 5 x 1 = 48 + 5 = 53 10

Desno od '5' v seznamu (tabeli) je šestnajstiško število 35 in decimalno število 53.

Ker računalnik deluje v bajtih, se ob pritisku tipke na idealni tipkovnici v mikroprocesor (matično ploščo) pošlje osem bitov. Idealna tipkovnica je periferija, ki je ločena od sistemske (osnovne) enote računalnika. Ima elektronsko vezje (IC), ki ustvari sedem bitov in pred njim postavi ničlo, preden ga prek kabla pošlje na matično ploščo sistemske enote. Od vhodnih vrat (vhodnega vezja) matične plošče gre do mikroprocesorja, ki je prav tako na matični plošči. Iz mikroprocesorja gre v pomnilnik, ki je prav tako nameščen na matični plošči.

Torej, ko pritisnete tipko 'N' na idealni tipkovnici, se osem bitov 01001110 sprejme v mikroprocesor. Iz mikroprocesorja se prenesejo v pomnilnik, kjer ostanejo na pomnilniški lokaciji kot bajt. Računalniški programer mora upoštevati, da osem bitov 01001110 2 je enako kot 4E 16 kar je enako kot 78 10 .

Ko pritisnete tipko “[” na idealni tipkovnici, se osem bitov 01011011 sprejme v mikroprocesor. Iz mikroprocesorja se prenesejo v pomnilnik, kjer ostanejo na pomnilniški lokaciji kot bajt. Računalniški programer mora upoštevati, da osem bitov 01011011 2 je enako kot 5B 16 kar je enako kot 91 10 .

Ko pritisnete tipko '5' na idealni tipkovnici, kot znak in ne kot decimalno število, se osem bitov 00110101 sprejme v mikroprocesor. Iz mikroprocesorja se prenesejo v pomnilnik, kjer ostanejo na pomnilniški lokaciji kot bajt. Računalniški programer mora upoštevati, da osem bitov 00110101 2 je enako kot 35 16 kar je enako kot 5310 10 .

Včasih se program izvaja in čaka, da se v računalnik vnese decimalno število 5. V tem primeru, če pritisnete tipko '5' na idealni tipkovnici, se osembitna koda 00110101 še vedno prenese v mikroprocesor. Ker je potrebno decimalno število 5 in ne znak »5«, delček kode (kratek program) iz pomnilnika uporablja mikroprocesor za pretvorbo kode znaka 00110101 v osnovi dve v komplement dvojke 00000101 2 preden ga pošljete na pomnilniško lokacijo kot bajt komplementa dveh. Računalniški programer mora upoštevati, da 00000101 pomeni 5 10 v osnovi 2 in se razlikuje od kodnih številk 00110101 2 , 35 16 , in 53 10 kar pomeni znak '5'. Da bi v pomnilniku prikazali komplementno število obeh 00000101, mora drug kratek program pretvoriti 00000101 iz pomnilnika v 00110101. To je 00110101, kar je enako kot 35 16 kar je enako kot 53 10 ki se prikaže na monitorju (ali tiskalnik natisne na papir).

3.9 Oblika števila s plavajočo vejico

Število brez decimalnega dela je celo število. Število 36 je celo število. 36,375 ni celo število. Je decimalno število z decimalnim delom. Decimalni del .375 je ulomek, ki je manjši od 1.

36,375 se v decimalni obliki razlaga kot:

Zdaj:

Torej 100100 2 = 3610, kar je celo število 36,375 10 .

Zdaj:

Torej, 0,011 2 = 0,375 10 ki je decimalni del števila 36,375 10 .

∴ 36.375 10 = 100100.011 2

Povej drugače:

100100.011 2 = 36.375 10

Številke so v računalniku predstavljene z osnovo 2 in ne z osnovo 10, pri čemer so vse enake. Ker lahko celica v registru v mikroprocesorju ali celica v pomnilniku sprejme samo 1 ali 0, ni prostora za shranjevanje decimalne vejice. To predstavlja problem. Kot ločljivost sta na voljo 32-bitna predstavitev s plavajočo vejico z enojno natančnostjo IEEE-754 in 64-bitna predstavitev s plavajočo vejico z dvojno natančnostjo IEEE-754.

32-bitna oblika števila s plavajočo vejico
Število 100100,0112 lahko izrazimo kot:

100100.011 2 = 1,00100011 2 x 2 +5

Desna stran simbola = se v matematiki imenuje osnovna dva standardna oblika leve strani 100100,011 2 .

Zdaj, 00100011 od 1,00100011 2 na desni strani simbola =, brez predhodnega »1«. in brez 2 za osnovo, se imenuje eksplicitni signifikand. V tem primeru je binarna točka postavljena pet mest v levo, da ima '1'. Ne zamenjujte decimalne vejice in binarne vejice. Binarna vejica je za osnovo 2, medtem ko je decimalna vejica za osnovo 10. '1.' ki mu sledi 00100011 na desni strani simbola =, brez 2 za osnovo, tvori pravi signifikand. Vendar se 1,00100011 imenuje implicitni signifikant.

Za signifandom na desni strani je 'x 2 +5 ” izraz. S tem izrazom se +5 imenuje eksponent. Znak plus pomeni, da je treba binarno točko premakniti za pet mest naprej, da je v normalnem prvotnem položaju, 2 pa je osnova za oštevilčenje. Prejšnjo enačbo lahko zapišemo obratno kot:

1,00100011 2 x 2 +5 = 100100.011 2

Pri 32-bitni predstavitvi s plavajočo vejico je »1,00100011 2 x 2 +5 «, ki se uporablja in ne le »100100.011 2 ”. 2 za osnovo ni zabeležen. 32-bitna predstavitev s plavajočo vejico za »1.00100011 2 x 2 +5 ” število, ki je enako 36,375 10 = 100100.011 2 , je prikazano v naslednji tabeli:

Obstajajo 32-bitni položaji, ki so oštevilčeni od desnega konca, začenši z 0. Prvi bit na levem koncu je predznakovni bit. Če je število pozitivno, je ta bit 0. Če je število negativno, je ta bit 1 (-1 je sestavljen iz dveh znakov in ga ni mogoče dati v nobeno celico). 1,00100011 2 x 2 +5 kar je enako 36,375 10 kar je prav tako enako 100100,011 2 je pozitivno število. Torej, prvi bit je 0.

Obstaja osem bitnih položajev za eksponent, ki se začnejo od položaja 30 do vključno položaja 23. Vendar je eksponent, ki je tam zapisan, 10000100 2 kar je enako 132 10 . Eksponent števila obresti je dejansko +5 od osnove dva. Torej, kaj se zgodi?

Zdaj je v 32-bitni obliki eksponent 0 zapisan kot 01111111 2 kar je enako 127 10 . +5 10 je +101 2 . Torej, pri prihodu na 10000100 2 v delu eksponenta v tabeli, 101 2 je bil dodan na 01111111 2 , ustrezno. To pomeni, da smo 5 dodali 127, da smo dobili 132 10 .

Signifikant, brez '1.', je zavzel pozicije 22 navzdol do vključno 15. Upoštevajte, da je 1 od '1.' ni naveden v 32-bitnem nizu. Nikoli ni navedeno – sprejmite to. Preostale celice do položaja 0 so zapolnjene z ničlami.

Če je dejanski eksponent -5, potem se 5 odšteje od 127 10 imeti 122 10 . To ustreza odštevanju 101 2 od 01111111 2 imeti 01111010 2 .

Z vsemi prejšnjimi ilustracijami je število +1, ki je enako 1,0 x 2 0 = 1,0 x 1 = 1,0 je predstavljen kot:

Upoštevajte, da je '1.' od 1,0 x 2 0 ni navedeno v formatu. Nikoli ni navedeno. Naslednji mešani ulomek, ki gre pozitivno po 1,0, je:

Opazite 1 na desnem koncu. Ta predstavitev je številka:

Razlika med 1,0000001192092896 in 1,0 je:

1,0000001192092896 – 1,0 = 0,0000001192092896

Števila z decimalnimi deli so mešani ulomki. Niso vsi ulomki med 1 10 in 2 10 je mogoče predstaviti v računalniku. Predpostavimo lahko, da je najmanjša delna vrzel med zaporednimi mešanimi števili z 32-bitnim formatom s plavajočo vejico 0,0000001192092896. Pričakujte, da bo interval za dvojno natančnost manjši. Glejte naslednjo sliko.

0,0, ki predstavlja število, ne sledi prejšnjim argumentom. Predstavitev za 0.0 je deklarirana in jo je treba kot tako naučiti. Za predstavitev 0,0 so vse celice za signifikand 0 in vse celice za eksponent prav tako nič. Predznakovni bit je lahko 0 ali 1. Na žalost to povzroči pozitivno 0 in negativno 0, kot sledi:

V resničnem življenju je samo ena ničla. Pozitivna 0 in negativna 0 ne obstajata. Vendar se 0 običajno šteje za pozitivno. Pozitivna 0 in negativna 0 obstajata tukaj zaradi tega posebnega opisa formata. Številska premica (glej zgoraj) ima lahko tudi +0 in -0, vendar obstaja samo ena ničla.

64-bitna oblika števila s plavajočo vejico
64-bitni format s plavajočo vejico je podoben 32-bitnemu formatu, vendar z naslednjimi razlikami:

  • Število predstavlja 64 bitov.
  • Za predznačnim bitom je 11 bitov za eksponentno število.
  • Število eksponenta za ničelni indeks (2 0 ) je 1023 10 = 01111111111 2 .
  • Enajstim bitom sledi 52 bitov za eksplicitni signifikand.
  • Ima širši obseg številk kot 32-bitni format.

Upoštevajte, da je '1.' ki je na začetku signifikanda, še vedno ni vključen med 64 bitov, tako kot ni vključen med 32 bitov za 32-bitni format.

Ena najpomembnejših razlik med 64-bitnim in 32-bitnim formatom je ta, da je razlika med zaporednimi mešanimi frakcijami v 64-bitnem formatu manjša kot pri 32-bitnem formatu.

V 64-bitnem formatu je interval (vrzel) med 1,0 in naslednjim mešanim ulomkom mogoče izračunati na naslednji način:

1.0 je

0 01111111111 00000000000000000000 00000000000 0000000000000000000000 2

To je enakovredno »1.«, ki ni bil naveden v nizu, pomnoženo z 2, povečano na potenco (indeks) 0 (pri čemer je eksponent 1023 10 = 01111111111 2 za 2 0 = 1). Niz je 1,0 x 2 0 .

Naslednji mešani ulomek, večji od 1,0, je:

0 01111111111 00000000000000000000 00000000000 000000000000000000001 2

To je enakovredno '1.' ki ni naveden v nizu, sledi 51 ničel in nato 1, pomnoženo z 2, dvignjeno na potenco 0 (pri čemer je eksponent 1023 10 = 011111111112 2 za 2 0 = 1). To je enako kot:

+2 0 × (1 + 2− -52 ) ≈ 1,0000000000000002

≈ pomeni približno enako.

Zdaj:

1,0000000000000002 – 1,0 ≈ 0,00000000000000002

Ustrezna vrednost intervala za 32-bitni format je 0,0000001192092896 ≈ 0,00000012.

0,0000000000000002 je veliko manjši od 0,00000012. Torej je med dvema zaporednima celima številoma (npr. 3 in 4) v 64-bitnem formatu veliko več mešanih ulomkov kot med dvema zaporednima celima številoma v 32-bitnem formatu.

Število mešanih ulomkov med dvema zaporednima celima številoma na številski premici je neskončno. Torej noben format (npr. 32-bitni ali 64-bitni) ne more zagotoviti vseh mešanih ulomkov med katerima koli dvema zaporednima celima številoma (cela števila). Manjši kot je razmik (interval) med dvema zaporednima celima številoma, ki ga zagotavlja format (npr. 32-bitni ali 64-bitni), večje je število mešanih ulomkov med zaporednima celima številoma (za številsko premico).

Razlogi, zakaj je 64-bitni format opisan kot dvojna ali večja natančnost v primerjavi z 32-bitnim formatom, so v tem, da je interval med dvema zaporednima mešanima ulomkoma, omejenima z dvema zaporednima celima številoma za 64-bitni format, manjši od ustreznih 32 -bitni formatni interval. Poleg tega obstaja več možnih mešanih ulomkov med dvema omejenima celima številoma za 64-bitni format kot ustrezno za 32-bitni format.

Pretvarjanje decimalnega dela (ulomka) decimalnega števila v dvojiški del
36,375 je decimalno število z decimalnim delom '.375'. Decimalni del '.375' je ulomek med nič in ena. 0,5 pri osnovi deset je enake vrednosti kot 1/2 pri osnovi dve. 0,5 10 ki je izražen z razširitvijo na osnovi dve je:

Ni 0,101 2 kar pomeni 0,625 10 . Decimalni del decimalnega števila ima svoj enakovredni binarni del za ustrezno binarno število. Torej, če želite pretvoriti decimalno število, kot je 36,375 10 na osnovo dve, pretvorite 36 v dvojiško in nato pretvorite .375 prav tako v dvojiško. Nato združite oba rezultata z binarno točko. Metode za pretvorbo obeh odsekov so različne. Kako pretvoriti decimalno celo število v osnovo 2, je razloženo v 1. poglavju.

Če želite pretvoriti decimalni ulomek v dvojiški ulomek, sledite tem korakom:

  • Pomnožite decimalni ulomek (decimalni del) z 2. Celo število, ki izhaja iz tega, je prva dvojiška cifra.
  • Ponovite prejšnji korak z decimalnim rezultatom, da dobite naslednjo binarno števko.
  • Ponavljajte prejšnji korak, dokler decimalni delni rezultat ni .0000—.

Primer: Pretvorite ulomek od 36,375 10 na enakovredni ulomek v osnovi dve.

rešitev:

Upoštevajte, da je bilo v tretjem koraku 0,500 pomnoženo z 2 in ne 1,500. Dvojiški ustrezen ulomek se prebere v zadnjem stolpcu od zgoraj. In tako je naslednji rezultat:

.375 10 = 0,011 2

Pretvarjanje binarnega dela (ulomka) binarnega števila v decimalni del
Da bi to dosegli, razširite binarni ulomek na recipročne potence 2.

Primer: Pretvorite ulomek od 100100,011 2 na enak ulomek v osnovi deset.

rešitev:

3.10 Številske predpone v računalništvu

V običajnem življenju 1 kilogram pomeni 1000, kar je skrajšano z k (male črke), kot je 1 kg. V računalništvu 1 kilogram pomeni 2 10 = 1024, vendar je skrajšan v K (velike črke) kot v 1Kbits. V običajnem življenju 1 mega pomeni 1.000.000, kar je skrajšano z M (velike črke), kot je 1Mg. V računalništvu 1 mega pomeni 2 dvajset = 1.048.576 = 2 10 x 2 10 = 1024 x 1024 = 1.048.576 in je še vedno okrajšano v M (velike črke) kot pri 1Mbits. V običajnem življenju 1 giga pomeni 1.000.000.000, kar je skrajšano v G (velike črke) kot v 1Gg. V računalništvu 1 giga pomeni 2 30 = 1.073.741.824 = 2 10 x 2 10 x 2 10 = 1024 x 1024 x 1024 = 1.073.741.824 in je še vedno okrajšano v G (velike črke) kot v 1Gbits. Naslednja tabela podaja pomen štirih predpon v običajnem življenju in v računalništvu:

3.11 Težave

Bralcu svetujemo, da reši vse težave v poglavju, preden se premakne na naslednje poglavje.

  1. Nariši številsko premico s celimi števili od -10 do +10.
  2. Dodajte naslednja binarna števila v 8-bitni komplement dveh: 101010 2 in 1111 2 .
  3. Za odštevanje binarnega števila 1111 uporabite le pristop dveh komplementov v 8-bitih 2 iz binarnega števila 101010 2 .
  4. Poiščite izdelek 10110 2 x 1101 2 v bazi dva.
  5. Deli 36,375 10 s 1000 10 v decimalni in dvojiški obliki ter primerjajte rezultate.
  6. Uporabite 8-bitov po vaši izbiri za ponazoritev logičnih IN, ALI, XOR, Invert, Shift Right, Shift Left, Rotate Right in Rotate Left. Vsak bajt mora vsebovati mešanico 1 in 0.
  7. a) Napišite številsko kodo za znak ASCII ničle v šestnajstiški, dvojiški in decimalni obliki.
    b) Napišite številsko kodo za znak ASCII '1' v šestnajstiški, dvojiški in decimalni obliki.
    c) Napišite številsko kodo za znak ASCII za 'A' v šestnajstiški, dvojiški in decimalni obliki.
    d) Napišite številsko kodo za znak ASCII 'a' v šestnajstiški, dvojiški in decimalni obliki.
  8. Pretvori 49,49 10 v bazo dve. Pretvorite rezultat v IEEE 32-bitni format s plavajočo vejico.
  9. a) V čem se 64-bitni format s plavajočo vejico IEEE razlikuje od 32-bitnega formata?
    b) Navedite dva sorodna razloga, zakaj je 64-bitni format opisan kot dvojno ali večja natančnost v primerjavi z
    32-bitni format.