Poglavlje 3: Operacije s binarnim brojevima u mikroprocesoru

Poglavlje 3 Operacije S Binarnim Brojevima U Mikroprocesoru



Poglavlje 3: Operacije s binarnim brojevima u mikroprocesoru

3.1 Uvod

U računalu se aritmetičke operacije izvode u 8 bita, 16 bita, 32 bita ili 64 bita. Broj poput 3 u binarnom obliku je 11. Ako se operacija treba izvršiti u 8 bita, to se smatra 00000011; ispred njega s 0 nula.







Za binarni broj kao što je 10000101, najvažniji bit je bit na krajnjoj lijevoj strani. U ovom slučaju je 1. Najmanji bit je ekstremni bit s desne strane, koji je i dalje 1, za broj. Najznačajniji bit je skraćeno MSB. Bit najmanjeg značaja je skraćeno LSB.



Binarni digiT je skraćeno BIT i jednostavno se piše kao bit. U broju 10010011 svaka jedinica ili nula je malo. Skupina od četiri bita naziva se nibble. Skupina od osam bitova naziva se bajt. Bajt se sastoji od dva nibla. Niži nibble je nibble za LSB, a viši nibble je nibble za MSB.



Grupa od 8 bita, 16 bita, 32 bita ili 64 bita naziva se riječju, sve dok ta grupa prenosi informacije osim što samo ukazuje na broj. Grupa se naziva riječju, na primjer, ako se radi o instrukciji niske razine u računalu. Postoji i riječ od 24 bita, ali to se danas ne koristi često.





Endianness se odnosi na redoslijed kojim bajtovi tvore riječ. Razmotrimo 24-bitnu riječ – 100100001111010100100010. Ova se riječ sastoji od tri bajta koji su:

10010000 11110101 00100010



Najznačajniji bajt je krajnji lijevi bajt. Kada je bajt na krajnjoj lijevoj strani najvažniji bajt, a bajt na krajnjoj desnoj strani najmanje značajan bajt, to se naziva Big Endian reprezentacija riječi. Little Endian reprezentacija je suprotna.

Memorija računala je niz ćelija, a svaka ćelija sadrži bajt. Prva ćelija u memoriji računala je za bajt 0, druga je za bajt 1, treća je za bajt 2 itd. Uz veliki endianness i za prethodnu riječ, najznačajniji bajt pohranjuje se u ćeliju bajta 0, srednji bajt pohranjuje se u ćeliju bajta 1, a bajt najmanje važnosti pohranjuje se u ćeliju bajta 2. To znači da u nižoj memorijskoj ćeliji ima značajnijih bajtova.

Prethodna 24-bitna riječ može se napisati obrnutim redoslijedom bajtova na sljedeći način:

00100010 11110101 10010000

Sada je bajt najmanjeg značaja krajnje lijevo, a bajt najveće važnosti krajnje desno. Kada je bajt na krajnjoj lijevoj strani najmanje značajan bajt, a bajt na krajnjoj desnoj strani najvažniji bajt, to je Little Endian reprezentacija riječi. S malom endianijom i za prethodnu riječ, bajt najmanje važnosti pohranjuje se u ćeliju bajta 0, srednji bajt pohranjuje se u ćeliju bajta 1, a bajt najveće važnosti pohranjuje se u ćeliju bajta 2. To znači da postoji manje značajan bajt u donjoj memorijskoj ćeliji.

Endianness se ne koristi za bitove u bajtu. Također se ne koristi za grickanje u bajtu. Koristi se samo za poredak bajtova.

Brojevna linija
Broj bez predznaka je pozitivan broj. Pozitivni brojevi su brojevi od nule naviše. Postoje i negativni brojevi. Pozitivni i negativni brojevi mogu se prikazati na brojevnom pravcu. Sljedeći brojevni pravac prikazuje pozitivne i negativne cijele brojeve (cijele brojeve) blizu nule:

Negativni brojevi se smanjuju od nule prema dolje (lijevo). U mnogim situacijama nula se smatra pozitivnom. Međutim, u nekim se situacijama smatra negativnim. Zato ispred nule, u donjem numeriranju, na dijagramu stoji znak plus i minus. Kada je broj pozitivan, njegov predznak se može izostaviti; ovo je slučaj za gornje numeriranje u dijagramu. Znak minus ispred negativnog broja nikada se ne izostavlja.

3.2 Zbrajanje binarnih brojeva

U dodatku:

A + B = S

A se naziva augend, B se zove pribrojnik, a S se zove suma.

Razmotrimo sljedeće zbrajanje dva pozitivna broja u bazi dva:

U bazi dva jedine moguće znamenke su 0 i 1. Zbrajanje u bazi 2 slično je zbrajanju u bazi deset, ali je dva u bazi dva jedan-nula (10). Kada je zbroj dva bita u stupcu 10, 0 se upisuje, a 1 se prenosi u neposredni lijevi stupac; da se doda zbroju dva bita tamo. Kada je ukupni zbroj tri, to znači 11 u bazi dva. Desni 1 od 11 se piše, a lijevi 1 se prenosi da se doda zbroju bitova neposrednog lijevog stupca. U oba slučaja, 1 nošen ulijevo naziva se nošenje.

Čitajući prethodnu tablicu zbrajanja s desna, u drugom stupcu (s desna) postoji prijenos koji proizlazi iz 1+1 = 10. U trećem stupcu postoji prijenos koji proizlazi iz 1+1+ prijenosa od 1 = 11. U četvrtom stupcu postoji prijenos koji je rezultat 0+1+ prijenos od 1 = 10. U petom stupcu nema prijenosa jer je zbroj 0+0+ prijenos od 1 = 1. ostatak stupaca ne uključuje prijenos.

Brojanje stupaca počinje od desnog kraja. Sa 16-bitnim zbrajanjem, može doći do prijenosa iz osmog stupca u deveti stupac (pomicanje ulijevo). Sljedeća tablica to ilustrira:

Aritmetičke i logičke operacije odvijaju se u mikroprocesoru na matičnoj ploči računala.

Za 8-bitno računalo riječi prijenos ne može hardverski automatski ići od osmog bita do devetog bita. Dakle, da bi se dodale dvije 16-bitne grupe u takvom računalu, zbrajanje se mora izvršiti dva puta u parovima od osam-osam bitova. Softver (programiranje) pomiče prijenos i na njega djeluje.

Za zbrajanje dvaju brojeva, prije zbrajanja brojevi se prvo mogu pretvoriti u njihov komplementni oblik (vidi dolje).

3.3 Komplement dvojke i njegovo oduzimanje binarnih brojeva

Na matičnoj ploči računala nalazi se memorija i mikroprocesor i drugi sklopovi. Memorija je niz ćelija od osam bita. Za bajt, svaki bit ide u ćeliju. Mikroprocesor ima nekoliko memorijskih mjesta. Ove lokacije memorijskog tipa nazivaju se registri. Dakle, u računalu se skupine bajtova mogu privremeno pohraniti u memoriju ili u registre mikroprocesora.

U bilo kojoj od ovih pohrana, svaka ćelija može uzeti ili 1 ili 0, i ništa drugo. U životu postoje pozitivni i negativni brojevi. Pozitivan broj počinje znakom plus (+), a negativan broj počinje znakom minus (-). Kada je znak izostavljen, broj se smatra pozitivnim brojem.

Kako bi se riješio ovaj problem označavanja predznaka broja u računalu, cijeli se brojevi pohranjuju u rasponima. Cijeli brojevi su cijeli brojevi. Ako se osam bitova koristi za pohranu raspona mogućih brojeva, krajnji lijevi bit se koristi kao bit predznaka. Ako broj počinje s 0, broj je pozitivan broj. Ako počinje s 1, broj je negativan broj. Ako se šesnaest bitova koristi za pohranu raspona mogućih brojeva, krajnji lijevi bit se koristi kao bit predznaka. Ako broj počinje s 0, t je broj pozitivan broj. Ako počinje s 1, broj je negativan broj. Brojevi u ovom obliku nazivaju se brojevima s predznakom.

U praksi mogu postojati brojevi s predznakom za 8 bita, 16 bita, 32 bita i 64 bita. Što se veći broj bitova koristi, to je veći raspon mogućih brojeva koji se mogu pohraniti.

Komplement dvaju cijelih brojeva
Uz komplement dva, pozitivni brojevi su normalni brojevi za brojanje, osim što je krajnja lijeva znamenka 0. Da biste dobili odgovarajući negativni broj za bilo koji pozitivni broj, obrnite svaki bit u broju i dodajte 1 rezultatu. Invert ili komplement od 0 je 1. Invert ili komplement od 1 je 0. Sljedeće tablice prikazuju neke komplementarne brojeve dvojke u njihovim rasponima:

Tablica 3.31
Dva bita komplementa cijelih brojeva
Binarni Decimal
01 +1
00 +0
jedanaest -1
10 -2

Pozitivni binarni brojevi su 00 i 01 (to je nula i jedan). U krajnjem lijevom bitu nula pokazuje da su to pozitivni brojevi. 00 je nekako u sredini raspona. Da bi se dobilo -1, utvrđeno je da je invertiranje broja 01 10. Dodavanje 1 ovome (krajnje desno) daje 11.

Budući da se koriste dva bita, ostaje samo jedan bit za predstavljanje brojeva u rasponu koji se sastoji od brojeva +1, +0 i -1 koji odgovaraju brojevima 01, 00 i 11. Prvi bit označava znak. Dešava se da 10 za +2 nije među ova tri binarna broja. 10 počinje s 1 što znači da mora biti negativan broj u komplementu dvojke. Dakle, 10 je uključeno u raspon, što znači -2.

S dva bita u komplementu dva, broj svih cijelih brojeva (pozitivnih i negativnih) koji se mogu predstaviti je 2 2 = 4 a ne 2 2 -1 = 3. Nijansa proizlazi iz uključivanja zadnjeg negativnog broja koji je negativan od 2 broj sa – 1. U ovom slučaju, -2 2-1 = -2 1 = -2. Ne postoji +2 u rasponu brojeva komplementa dvojke u 2 bita.

Tablica 3.32
Cijeli brojevi s komplementom dva u četiri bita
Binarni Decimal
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

Pozitivni binarni brojevi su od 0000 do 0111 (to jest od nula do sedam). U krajnjem lijevom bitu nula pokazuje da su to pozitivni brojevi. 0000 je nekako u sredini raspona. Da bi se dobilo -1, invert broja 0001 je 1110. Dodavanje 1 ovome (krajnje desno) daje 1111. Da bi se dobilo -2, invert broja 0010 je 1101. Dodavanje 1 ovome ( s krajnje desne strane) daje 1110. Ostali negativni binarni brojevi poput -3 do -7 se određuju na sličan način.

Budući da se koriste četiri bita, tri bita ostaju za predstavljanje brojeva u rasponu koji su +7, +6, +5, +4, +3, +2, +1, +0, -1, -2, - 3, -4, -5, -6 i -7 koji odgovaraju brojevima 0111, 0110, 0101, 0100, 0011, 0010, 0001, 0000, 1111, 1110, 1101, 1100, 1011, 1010 i 1001.

-8 koji odgovara 1000 mora se adresirati zasebno. Prvi bit za sve ove brojeve označava predznak 0 za pozitivne brojeve i 1 za negativne brojeve. Dešava se da 1000 nije među ovih četrnaest binarnih brojeva. 1000 počinje s 1 što znači da mora biti negativan broj, što se tiče komplementa dvojke. Dakle, 1000 je uključeno u raspon, što znači -8.

S četiri bita u komplementu dva, broj svih cijelih brojeva (pozitivnih i negativnih) koji se mogu predstaviti je 2 4 = 16 a ne 2 4 – 1 = 15. Nijansa proizlazi iz uključivanja posljednjeg negativnog broja koji je negativan od 2 brojWidth – 1. U ovom slučaju, -2 4 -1 = -2 3 = -8. U nizu brojeva nema +8.

Prethodna analiza za dva, četiri i šire bite u komplementu dva može se primijeniti na binarne brojeve od 8 bita, 16 bita, 32 bita i 64 bita.

Komplement dvojke žrtvuje prvi (krajnji lijevi) bit za predznak 0 za pozitivan broj i 1 za negativan broj. Za 'n' bit široku grupu bitova, postoje 2 n ukupni pozitivni plus negativni brojevi. Bilo bi 2 n -1, da nije uključenog sretnog posljednjeg (najmanjeg) negativnog broja. Najveći pozitivni broj je +2 n-1 -1, a najmanji negativni broj je -2 n-1 -1. Bilo bi -2 n-1 -1, da nije bilo sretnika -2 n-1 uključeno.

Oduzimanje brojeva u komplementu dvojke
U oduzimanju:

A – B = D

A se zove umanjenik, B se zove oduzetik, a D se zove razlika.

Za oduzimanje jednog pozitivnog binarnog broja od drugog pozitivnog binarnog broja, umanjenik se piše u komplementu dvojke, a umanjenik se pretvara u vrijednost komplementa negativne dvojke. Dakle, matematička izjava postaje:

A+ – B = D

Drugim riječima, u oduzimanju komplementom dva, subtrahend se pretvara u negativan broj i zatim dodaje smanjenom broju.

Primjer 3.31:
Procijenite sljedeći decimalni izraz u komplementu dva koristeći četiri bita:

6 – 4

Riješenje:
Binarni broj za 6 je 110. U 4-bitnom komplementu dvojke to je 0110. Binarni broj za +4 je 100. U 4-bitnom komplementu dvojke to je 0100. 0100 koji se mora pretvoriti u negativnih 4 u dvojci komplement na sljedeći način: komplement ili inverzija od 0100 je 1011. Dodavanje 1 ovome s desnog kraja, kao što smo učinili u dodatku, daje 1100. Dakle, decimalni izraz je:

6 – 4 koji postaje:

0110 – 0100 koji je

0110 +(– 0100) = 0110 + 1100 učinjeno kao u prethodnom odjeljku zbrajanja kao:

Napomena: 0110 +(– 0100) je isto što i 6 + – 4

S oduzimanjem komplementa dva, svaki prijenos, nakon zadnjeg stupca lijevo, u zbrajanju, odbacuje se. Kada oduzimamo u decimalnom obliku, matematički iskaz je:

6 – 4 = 2

Radeći istu stvar u komplementu dvojke, odgovor je 0010 što je +2 u binarnom računanju komplementa dvojke. Prethodnim oduzimanjem se od većeg broja oduzima manji broj. U sljedećem primjeru, veći broj se oduzima od manjeg broja. Tablicu 3.32 možete vidjeti da vidite je li 0010 doista komplement dvojke koji je ekvivalentan +2.

Primjer 3.32:
Procijenite sljedeći decimalni izraz u komplementu dva s četiri bita:

4 – 6

Riješenje:
Binarni broj za 4 je 100. U 4-bitnom komplementu dvojke to je 0100. Binarni broj za +6 je 110. U 4-bitnom komplementu dvojke to je 0110. 0110 se mora pretvoriti u negativnih 6 u komplementu dvojke kako slijedi: Komplement ili inverzija od 0110 je 1001. Dodavanje 1 ovome s desnog kraja, kao što smo učinili u prethodnom zbrajanju, daje 1010. Dakle, decimalni izraz je:

4 – 6 koji postaje:

0100 – 0110 koji je

0100 +(– 0110) = 0100 + 1010 učinjeno kao u prethodnom odjeljku zbrajanja kao:

Napomena: 4+ – 6 je isto što i 0100 +(– 0110).

S oduzimanjem komplementa dva, svaki prijenos, nakon zadnjeg stupca lijevo, u zbrajanju, odbacuje se. Kada oduzimamo u decimalnom obliku, matematički iskaz je:

4 – 6 = -2

Radeći istu stvar u komplementu dvojke, odgovor je 1110 što je -2 u binarnom računanju komplementa dvojke. Tablicu 3.32 možete vidjeti da vidite je li 1110 doista komplement dvojke koji je ekvivalentan za -2.

3.4 Množenje binarnih brojeva

U izjavi:

A x B = P

A se naziva množenik, B se naziva množitelj, a P se naziva produkt. Izraz A x B znači zbrajanje A, B nekoliko puta kada su A i B cijeli brojevi (cijeli brojevi).

Množenje u binarnom obliku je isto što i množenje u decimalnom obliku. Međutim, umjesto u decimalnom, to se radi u binarnom. Množenje decimalnog izraza od 42 x 10 vrši se u binarnom obliku na sljedeći način gdje je 42 10 = 101010 2 i 10 10 = 1010 2 :

4 broja koja se dodaju nazivaju se djelomični umnošci. Odgovor je proizvod. Zbrajanje djelomičnih proizvoda vrši se na isti način kao što je prethodno objašnjeno.

Množenje se također može vidjeti na sljedeći način: U ovom množenju s bazom dva, ako je bit (znamenka) u množitelju 1, najmanje značajan bit njegovog djelomičnog umnoška je najmanje značajan bit množenika koji se ponovno upisuje izravno ispod njega; a ostali bitovi množenika se ponavljaju ulijevo. U ovom množenju s bazom dva, ako je bit (znamenka) u množitelju 0, njegov se djelomični umnožak sastoji od 0 s najmanje značajnim bitom 0 neposredno ispod njega. Broj svih nula je broj bitova u množeniku.

3.5 Dijeljenje binarnih brojeva

U izjavi:

A ÷ B = Q

A se zove dividenda, B se zove djelitelj, a P se zove kvocijent. Kvocijent može biti popraćen ostatkom. Izraz A ÷ B znači koliko se puta B može dodati da dobije A ili mu bude blizu tako da ostatak bude 0 ili manji od B.

Podjela se može izvesti na više načina. Podjela koja je ovdje prikazana je podjela restauracije.

Obnavljanje divizije
Ovo je metoda dugog dijeljenja koja se uči u školama. Ako je 237 podijeljeno sa 6, odgovor je 39 ostatak 3. 237 10 u bazi 2 je 11101101 2 i 6 10 u bazi 2 je 110 2 . 39 10 u bazi 2 je 100111 2 i 3 10 u bazi 2 je 11 2 .

Dakle, 11101101 2 podijeljeno sa 110 2 daje 100111 2 ostatak 11 2 u bazi dva. Kod metode restauracije, binarni brojevi su obični brojevi i nisu nužno u komplementu dva. Sljedeća struktura dijeli 11101101 2 prema 110 2 dati 100111 2 ostatak 11 2 :

Oduzimanje se obavlja uobičajeno, a ne korištenjem komplementa dva. Budući da je ovo baza dva, posudba je dva, a ne deset. Djelomične dividende su 10, 101, 1011, 1010 i 1001. 11 je ostatak. Budući da djelitelj ima tri znamenke, dijeljenje se vrši uglavnom u grupama od tri znamenke iz zadane dividende. Kvocijent je cijeli broj (cijeli broj), a za ovaj zadatak iznosi 100111. Rezultat kvocijenta i ostatka je očekivan.

3.6 Aritmetičke operacije sa softverom i hardverom

Matična ploča računala ima sat. Otkucaji sata nazivaju se pulsevi. Pri svakom impulsu takta, jedna ili više odluka se donose na različitim mjestima na matičnoj ploči; a to je u vezi s programiranjem (softverom).

Unutar mikroprocesora postoje dvije vrste sklopova koji se nazivaju: kombinacijski logički sklopovi i sekvencijalni logički sklopovi. Postoji još jedna vrsta sklopa koji se naziva multiplekser. Zbrajanje, množenje i dijeljenje mogu se odvijati unutar jednog takta pomoću kombinacijske logike (sklopa). Dok programiranje (softver) donosi odluku pri svakom impulsu takta pomoću sekvencijalnih logičkih sklopova i multipleksera.

Kada se oduzimanje vrši pomoću komplementa dvojke, potrebna su najmanje dva takta. Na prvom taktnom impulsu, multiplekser kanalizira subtrahend na skup NOT vrata (jedna NOT vrata po znamenki). Na drugom taktnom impulsu kombinacijska logika dodaje 1 izlazu NOT vrata i nastavlja zbrajati rezultirajući subtrahend i minuend. Sve to zbrajanje može se dogoditi unutar jednog takta.

Zbrajanje, množenje i dijeljenje još uvijek se mogu riješiti programiranjem pomoću tablica istine. Međutim, to nije obuhvaćeno ovim online tečajem za karijeru.

3.7 Logičke operacije u mikroprocesoru

I, ILI, XOR i Invertiraj

I
Sljedeća tablica ilustrira Bitwise AND. To znači da se za dva različita binarna broja odgovarajući bitovi dodaju AND na temelju tablice AND Truth:

Krećući se s lijeva na desno, 1 I 1 = 1; 0 I 1 = 0; 0 I 0 = 0; 1 I 0 = 0; i tako dalje u skladu s AND tablicom istine.

ILI
Sljedeća tablica ilustrira Bitwise OR. To znači da za dva različita binarna broja, odgovarajući bitovi su OR-ovani na temelju OR tablice istinitosti:

Krećući se slijeva nadesno, 1 ILI 1 = 1; 0 ILI 1 = 1; 0 ILI 0 = 0; 1 ILI 0 = 1; i tako dalje u skladu s OR tablicom istine.

BESPLATNO
Sljedeća tablica ilustrira Bitwise exclusive-OR. To znači da se za dva različita binarna broja odgovarajući bitovi koriste XOR-om na temelju tablice istinitosti XOR-a:

Krećući se slijeva nadesno, 1 XOR 1 = 0; 0 XOR 1 = 1; 0 XOR 0 = 0; 1 XOR 0 = 1; i tako dalje u skladu s XOR tablicom istinitosti.

Preokreni (NE)
Sljedeća tablica ilustrira Bitwise NOT (invert). To znači da je za jedan binarni broj, ovaj put, svaki bit obrnut na temelju NOT tablice istine:

Pomicanje s lijeva na desno, NE 1 = 0; NIJE 0 = 1; NIJE 0 = 1; NIJE 1 = 0; i tako dalje u skladu s NOT tablicom istine.

Pomicanje desno ili lijevo

Pomak udesno
Sljedeći binarni broj pomaknut je za 3 mjesta bita udesno, s nulama umetnutim na prazna mjesta bita s lijeve strane:

Smjena se može vršiti za jedno, dva, tri, četiri itd. mjesta.

Pomak ulijevo
Sljedeći binarni broj pomaknut je za 3 mjesta bita ulijevo, s nulama umetnutim u prazna mjesta bita s desne strane:

Smjena se može vršiti za jedno, dva, tri, četiri itd. mjesta.

Rotiranje desno ili lijevo

Rotiranje je slično pomicanju. Radi se malo po malo. Kod rotacije udesno, dijelovi koji napuštaju desni kraj ne otpadaju kao kod pomaka; oni zamjenjuju ispražnjene dijelove s lijeve strane, jedan po jedan. Kod rotacije ulijevo, dijelovi koji napuštaju lijevi kraj ne otpadaju kao kod pomaka; oni zamjenjuju prazne bitove s desne strane, jedan po jedan.

Zakreni udesno
Sljedeći binarni broj je rotiran za 3 bita udesno:

Rotiranje se može vršiti za jedno, dva, tri, četiri itd. mjesta.

Okreni ulijevo
Sljedeći binarni broj je rotiran za 3 bita ulijevo:

Rotiranje se može vršiti za jedno, dva, tri, četiri itd. mjesta.

3.8 ASCII skup znakova i njegove kodne vrijednosti

ASCII je kratica za 'Američki (SAD) standardni kod za razmjenu informacija'. Zamislite tipkovnicu s 96 tipki. Ovo je idealna tipkovnica na kojoj se tipke za velika slova razlikuju od tipki za mala slova. Svaka druga tipka predstavlja znak koji se nalazi na engleskoj (SAD) tipkovnici. Znakovi i kodovi (odgovarajući brojevi za znakove) navedeni su u nastavku:

U ovoj tablici, prva 32 znaka (uključujući znak s 00 16 = 0 10 kod) su neispisivi znakovi. Oni su kontrolni likovi. Ne vide se na ekranu (monitoru) gdje je sve ravnopravno. Imaju samo efekte. Razgovarajmo više o tome kasnije.

Ostali znakovi su tiskani znakovi; vide se na ekranu. Postoji 128 ASCII znakova. 2 7 = 128. 1.111.111 2 = 127 10 . 7 u 2 7 znači 7 bita.

Sada, 1111111 2 + 1 2 je isto kao:

Evo, 10.000.000 2 = 128 10 . Postoji 128 10 znakova u prethodnom popisu (tablici) ASCII znakova. Ovo uključuje nulti znak, čiji je kod u bazi šesnaest (heksadecimalni) 00, što je ekvivalentno 0 u bazi deset.

Budući da ima ukupno 128 znakova, 128 minus 32 neispisna znaka daje 96 ispisnih znakova. U ovom se odjeljku pretpostavlja da postoji idealna tipkovnica s 96 znakova koji se mogu ispisati. Na ovoj idealnoj tipkovnici, tipke za velika slova engleskog jezika razlikuju se od tipki za mala slova engleskog jezika.

Svaki znak na tipkovnici predstavljen je baznim brojem dva od 7 bita koji nisu prikazani na popisu. Na primjer, veliko slovo 'N' predstavljeno je sa sedam bitova 1001110 u bazi 2. Za pretvorbu 1001110 2 na bazu 16, ispred toga stavite 0 i grupirajte rezultat u četverobitne podskupine kako slijedi:

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

To je 01001110 2 = 4E 16 . Za pretvorbu 4E 16 za bazu deset, učinite sljedeće:

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” u listi (tablici) nalazi se heksadecimalni broj 4E i decimalni broj 78.

Kao drugi primjer, znak “[” predstavljen je sa sedam bitova 1011011 u bazi 2. Za pretvorbu 1011011 2 na bazu 16, ispred toga stavite 0 i grupirajte rezultat u četverobitne podskupine kako slijedi:

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

To je 01011011 2 = 5B 16 . Za pretvorbu 5B16 u bazu deset, učinite sljedeće:

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

Desno od “[“ u listi (tablici) nalazi se heksadecimalni broj 5B i decimalni broj 91.

Kao još jedan primjer, znak za decimalni broj '5' predstavljen je sa sedam bitova 0110101 u bazi 2, i ne 0000101 u bazi 2. Za pretvorbu 0110101 2 na bazu 16, ispred toga stavite 0 i grupirajte rezultat u četverobitne podskupine kako slijedi:

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

To je 00110101 2 = 35 16 . Da biste pretvorili 3516 u bazu deset, učinite sljedeće:

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” u listi (tablici) nalazi se heksadecimalni broj 35 i decimalni broj 53.

Budući da računalo radi u bajtovima, kada se pritisne tipka na idealnoj tipkovnici, osam bitova se šalje mikroprocesoru (matičnoj ploči). Idealna tipkovnica je periferija koja je odvojena od sistemske (bazne) jedinice računala. Ima elektronički sklop (IC) koji stvara sedam bitova i ispred njega stavlja nulu prije nego što ga pošalje svojim kabelom na matičnu ploču sistemske jedinice. Od ulaznog priključka (ulaznog kruga) matične ploče ide do mikroprocesora koji se također nalazi na matičnoj ploči. Iz mikroprocesora ide u memoriju koja je također ugrađena na matičnu ploču.

Dakle, kada se pritisne tipka “N” na idealnoj tipkovnici, osam bitova 01001110 preuzima se u mikroprocesor. Iz mikroprocesora se preuzimaju u memoriju gdje ostaju na memorijskoj lokaciji kao bajt. Računalni programer treba imati na umu da osam bitova od 01001110 2 je isto što i 4E 16 što je isto kao 78 10 .

Kada se pritisne tipka “[” na idealnoj tipkovnici, osam bitova 01011011 preuzima se u mikroprocesor. Iz mikroprocesora se preuzimaju u memoriju gdje ostaju na memorijskoj lokaciji kao bajt. Računalni programer treba imati na umu da osam bitova od 01011011 2 je isto što i 5B 16 što je isto kao 91 10 .

Kada se pritisne tipka “5” na idealnoj tipkovnici, kao znak, a ne kao decimalni broj, osam bitova 00110101 uzima se u mikroprocesor. Iz mikroprocesora se preuzimaju u memoriju gdje ostaju na memorijskoj lokaciji kao bajt. Računalni programer treba imati na umu da osam bitova od 00110101 2 je isto što i 35 16 što je isto kao 5310 10 .

Postoje trenuci kada program radi i čeka da se decimalni broj 5 unese u računalo. U ovoj situaciji, ako se pritisne tipka “5” na idealnoj tipkovnici, osmobitni kod 00110101 i dalje se preuzima u mikroprocesor. Budući da je ono što je potrebno decimalni broj 5, a ne znak '5', dio koda (kratki program) iz memorije koristi mikroprocesor za pretvaranje koda znaka 00110101 u bazi dva u komplement dvojke 00000101 2 prije slanja na memorijsku lokaciju kao bajt komplementa dva. Računalni programer mora imati na umu da 00000101 znači 5 10 u bazi 2, i razlikuje se od kodnih brojeva 00110101 2 , 35 16 , i 53 10 što znači znak “5”. Kako bi se u memoriji prikazao komplement dva broja 00000101, drugi kratki program mora pretvoriti 00000101 iz memorije u 00110101. To je 00110101 što je isto kao 35 16 što je isto kao 53 10 koji se prikazuje na monitoru (ili pisač ispisuje na papiru).

3.9 Format broja s pomičnim zarezom

Broj bez decimalnog dijela je cijeli broj. Broj 36 je cijeli broj. 36,375 nije cijeli broj. To je decimalni broj s decimalnim dijelom. Decimalni dio od .375 je razlomak koji je manji od 1.

36.375 se tumači u decimalnom obliku kao:

Sada:

Dakle, 100100 2 = 3610 što je cijeli broj od 36.375 10 .

Sada:

Dakle, 0,011 2 = 0,375 10 što je decimalni brojčani dio od 36.375 10 .

∴ 36,375 10 = 100100.011 2

Recimo to na drugi način:

100100.011 2 = 36,375 10

Brojevi su u računalu predstavljeni u bazi 2, a ne u bazi 10, pri čemu su svi jednaki. Budući da ćelija u registru u mikroprocesoru ili ćelija u memoriji može uzeti samo 1 ili 0, nema mjesta za pohranjivanje decimalne točke. Ovo predstavlja problem. Kao razlučivost, postoji IEEE-754 32-bitni prikaz s pomičnim zarezom s jednom preciznošću i IEEE-754 64-bitni prikaz s pomičnim zarezom s dvostrukom preciznošću.

32-bitni format broja s pomičnim zarezom
Broj 100100,0112 može se izraziti kao:

100100.011 2 = 1,00100011 2 x 2 +5

Desna strana simbola = u matematici se naziva osnovnim dva standardna oblika lijeve strane od 100100.011 2 .

Sada, 00100011 od 1,00100011 2 na desnoj strani simbola =, bez prethodnog '1.' i bez 2 za bazu, naziva se eksplicitni signifikand. U ovom slučaju, binarna točka se uzima pet mjesta ulijevo kako bi imala '1'. Ne brkajte decimalnu točku i binarnu točku. Binarna točka je za bazu 2, dok je decimalna točka za bazu 10. '1.' nakon čega slijedi 00100011 na desnoj strani simbola =, bez 2 za bazu, čini pravi signifikand. Međutim, 1,00100011 se naziva implicitni signifikand.

Nakon signifikana na desnoj strani nalazi se 'x 2 +5 ” izraz. S ovim izrazom, +5 se naziva eksponent. Znak plus znači da se binarna točka mora pomaknuti pet mjesta naprijed kako bi bila u svom normalnom izvornom položaju, a 2 je osnova za numeriranje. Prethodna jednadžba se može napisati obrnuto kao:

1,00100011 2 x 2 +5 = 100100.011 2

S 32-bitnim prikazom s pomičnim zarezom, to je '1,00100011 2 x 2 +5 ”, a ne samo “100100.011 2 ”. 2 za bazu nije zabilježeno. 32-bitni prikaz s pomičnim zarezom za '1.00100011 2 x 2 +5 ” broj, koji je jednak 36.375 10 = 100100.011 2 , prikazan je u sljedećoj tablici:

Postoje 32-bitne pozicije koje su numerirane s desnog kraja, počevši od 0. Prvi bit na lijevom kraju je bit predznaka. Ako je broj pozitivan, ovaj bit je 0. Ako je broj negativan, ovaj bit je 1 (-1 sastoji se od dva znaka i ne može se staviti ni u jednu ćeliju). 1,00100011 2 x 2 +5 što je jednako 36.375 10 što je također jednako 100100.011 2 je pozitivan broj. Dakle, prvi bit je 0.

Postoji osam pozicija bita za eksponent, počevši od pozicije 30 do pozicije 23, uključivo. Međutim, eksponent koji je tamo zapisan je 10000100 2 što je jednako 132 10 . Eksponent broja interesa zapravo je +5 baze dva. Dakle, što se događa?

Sada, u 32-bitnom formatu, eksponent 0 se piše kao 01111111 2 što je jednako 127 10 . +5 10 je +101 2 . Dakle, dolaskom do 10000100 2 u dijelu eksponenta u tablici, 101 2 je dodan u 01111111 2 , prema tome. To znači da je 5 dodano 127 da bismo dobili 132 10 .

Značaj, bez “1.”, zauzeo je pozicije 22 do zaključno 15. Imajte na umu da 1 od '1.' nije naznačeno u 32-bitnom nizu. Nikada nije naznačeno – prihvatite to. Ostatak ćelija do pozicije 0 ispunjen je nulama.

Ako je stvarni eksponent -5, tada se 5 oduzima od 127 10 imati 122 10 . Ovo odgovara oduzimanju 101 2 od 01111111 2 imati 01111010 2 .

Uz sve prethodne ilustracije, broj +1 koji je jednak 1,0 x 2 0 = 1,0 x 1 = 1,0 predstavljeno je kao:

Imajte na umu da '1.' od 1,0 x 2 0 nije naznačeno u formatu. Nikada nije naznačeno. Sljedeći miješani razlomak koji ide pozitivno nakon 1,0 je:

Obratite pažnju na 1 na desnom kraju. Ovaj prikaz je broj:

Razlika između 1,0000001192092896 i 1,0 je:

1,0000001192092896 – 1,0 = 0,0000001192092896

Brojevi s decimalnim dijelovima su mješoviti razlomci. Nisu svi razlomci između 1 10 i 2 10 može se predstaviti u računalu. Može se pretpostaviti da je najmanji razlomak između uzastopnih mješovitih brojeva s 32-bitnim formatom pomičnog zareza 0,0000001192092896. Očekujte da će interval za dvostruku preciznost biti manji. Pogledajte sljedeću ilustraciju.

Predstavljajući broj, 0,0 ne slijedi prethodne argumente. Reprezentacija za 0.0 je deklarirana i mora se naučiti kao takva. Za predstavljanje 0,0, sve ćelije za signifikand su 0, a sve ćelije za eksponent također su nula. Bit predznaka može biti 0 ili 1. Nažalost, ovo dovodi do pozitivne 0 i negativne 0 kako slijedi:

U stvarnom životu postoji samo jedna nula. Pozitivna 0 i negativna 0 ne postoje. Međutim, 0 se obično smatra pozitivnim. Pozitivna 0 i negativna 0 postoje ovdje zbog ovog posebnog opisa formata. Brojevna linija (vidi gore) također može imati +0 i -0, ali postoji samo jedna nula.

64-bitni format broja s pomičnim zarezom
64-bitni format s pomičnim zarezom sličan je 32-bitnom formatu, ali sa sljedećim razlikama:

  • Postoje 64 bita za predstavljanje broja.
  • Nakon bita predznaka, nalazi se 11 bitova za broj eksponenta.
  • Broj eksponenta za nulti indeks (2 0 ) je 1023 10 = 01111111111 2 .
  • Nakon jedanaest bitova slijede 52 bita za eksplicitni signifikand.
  • Ima širi raspon brojeva od 32-bitnog formata.

Imajte na umu da '1.' koji je na početku significanda još uvijek nije uključen među 64 bita, kao što nije uključen među 32 bita za 32-bitni format.

Jedna od najvažnijih razlika između 64-bitnog formata i 32-bitnog formata je ta što je razlika između uzastopnih miješanih frakcija u 64-bitnom formatu manja nego u 32-bitnom formatu.

U 64-bitnom formatu, interval (razmak) između 1,0 i sljedećeg miješanog razlomka može se izračunati na sljedeći način:

1.0 je

0 01111111111 00000000000000000000 00000000000 0000000000000000000000 2

Ovo je ekvivalentno '1.', koji nije naznačen u nizu, pomnoženom s 2 na potenciju (indeks) 0 (s eksponentom 1023 10 = 01111111111 2 za 2 0 = 1). Niz je 1,0 x 2 0 .

Sljedeći mješoviti razlomak veći od 1,0 je:

0 01111111111 00000000000000000000 00000000000 000000000000000000001 2

Ovo je ekvivalentno '1.' koji nije naznačen u nizu, nakon čega slijedi 51 nula, a zatim 1, pomnoženo s 2 podignuto na potenciju 0 (s eksponentom 1023 10 = 011111111112 2 za 2 0 = 1). Ovo je isto kao:

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

≈ znači približno jednako.

Sada:

1,0000000000000002 – 1,0 ≈ 0,00000000000000002

Odgovarajuća vrijednost intervala za 32-bitni format je 0,0000001192092896 ≈ 0,00000012.

0,0000000000000002 je puno manji od 0,00000012. Dakle, postoji daleko više mješovitih razlomaka između dva uzastopna cijela broja (npr. 3 i 4) u 64-bitnom formatu nego između dva uzastopna cijela broja za 32-bitni format.

Broj mješovitih razlomaka između dva uzastopna cijela broja na brojevnom pravcu je beskonačan. Dakle, niti jedan format (npr. 32-bitni ili 64-bitni) ne može pružiti sve miješane razlomke između bilo koja dva uzastopna cijela broja (cijelih brojeva). Što je manji razmak (interval) između dva uzastopna cijela broja koji daje format (npr. 32-bitni ili 64-bitni), to je veći broj miješanih razlomaka između uzastopnih cijelih brojeva (za brojevni pravac).

Razlozi zašto se 64-bitni format opisuje kao dvostruka ili veća preciznost, u usporedbi s 32-bitnim formatom, jesu taj što je interval između dva uzastopna miješana razlomka omeđena s dva uzastopna cijela broja za 64-bitni format manji od odgovarajućih 32 -interval bitnog formata. Također, postoji više mogućih mješovitih razlomaka između dva ograničena cijela broja za 64-bitni format nego za 32-bitni format.

Pretvaranje decimalnog dijela (razlomka) decimalnog broja u binarni dio
36.375 je decimalni broj s decimalnim dijelom '.375'. Decimalni dio '.375' je razlomak između nule i jedan. 0,5 u bazi deset iste je vrijednosti kao 1/2 u bazi dva. 0,5 10 koji se izražava proširenjem baze dva je:

Nije 0,101 2 što znači 0,625 10 . Decimalni dio decimalnog broja ima svoj ekvivalentni binarni dio za odgovarajući binarni broj. Dakle, za pretvaranje decimalnog broja kao što je 36,375 10 na bazu dva, pretvorite 36 u binarno i zatim pretvorite .375 također u binarno. Zatim spojite oba rezultata s binarnom točkom. Metode pretvaranja dvaju odjeljaka su različite. Kako pretvoriti decimalni cijeli broj u bazu 2 objašnjeno je u 1. poglavlju.

Da biste pretvorili decimalni razlomak u binarni razlomak, slijedite sljedeće korake:

  • Pomnožite decimalni razlomak (decimalni dio) s 2. Cijeli broj koji iz toga proizlazi je prva binarna znamenka.
  • Ponovite prethodni korak s frakcijskim decimalnim rezultatom kako biste dobili sljedeću binarnu znamenku.
  • Nastavite ponavljati prethodni korak sve dok decimalni razlomački rezultat ne bude .0000—.

Primjer: Pretvorite razlomački dio od 36,375 10 na ekvivalentni razlomački dio baze dva.

Riješenje:

Imajte na umu da je u trećem koraku 0,500 pomnoženo s 2, a ne 1,500. Binarno odgovarajući razlomak čita se u zadnjem stupcu od vrha. I tako, sljedeći rezultat je:

.375 10 = 0,011 2

Pretvaranje binarnog dijela (razlomka) binarnog broja u decimalni dio
Da biste to postigli, proširite binarni razlomak na recipročne potencije od 2.

Primjer: Pretvorite razlomački dio od 100100,011 2 na ekvivalentni razlomački dio baze deset.

Riješenje:

3.10 Prefiksi brojeva u računarstvu

U normalnom životu, 1 kilogram znači 1000 što je skraćeno u k (mala slova) kao u 1 kg. U računalstvu 1 kilogram znači 2 10 = 1024, ali je skraćeno u K (velikim slovima) kao u 1Kbits. U normalnom životu, 1 mega znači 1.000.000 što je skraćeno u M (veliko) kao u 1Mg. U računalstvu 1 mega znači 2 dvadeset = 1.048.576 = 2 10 x 2 10 = 1024 x 1024 = 1,048,576 i još uvijek je skraćeno u M (velika slova) kao u 1Mbits. U normalnom životu, 1 giga znači 1.000.000.000 skraćeno u G (velikim slovima) kao u 1Gg. U računalstvu 1 giga znači 2 30 = 1,073,741,824 = 2 10 x 2 10 x 2 10 = 1024 x 1024 x 1024 = 1,073,741,824 i još uvijek je skraćeno u G (velika slova) kao u 1Gbits. Sljedeća tablica daje značenje četiri prefiksa u normalnom životu iu računalstvu:

3.11 Problemi

Čitatelju se savjetuje da riješi sve probleme u poglavlju prije nego prijeđe na sljedeće poglavlje.

  1. Nacrtaj brojevni pravac cijelim brojevima od -10 do +10.
  2. Dodajte sljedeće binarne brojeve u 8-bitni komplement dva: 101010 2 i 1111 2 .
  3. Za oduzimanje binarnog broja 1111 koristite samo dva komplementa u 8-bitovima 2 iz binarnog broja 101010 2 .
  4. Pronađite proizvod od 10110 2 x 1101 2 u bazi dva.
  5. Podijelite 36,375 10 do 1000 10 u decimalnom i binarnom obliku i usporedite rezultate.
  6. Upotrijebite 8-bitova po svom izboru za ilustraciju logičkog I, ILI, XOR, Invertiranja, Pomaka udesno, Pomaka ulijevo, Rotiranja udesno i Rotiranja ulijevo. Svaki bajt treba imati mješavinu 1 i 0.
  7. a) Napišite numerički kod za ASCII znak nule u heksadecimalnom, binarnom i decimalnom obliku.
    b) Napišite numerički kod za ASCII znak '1' u heksadecimalnom, binarnom i decimalnom obliku.
    c) Napišite numerički kod za ASCII znak 'A' u heksadecimalnom, binarnom i decimalnom obliku.
    d) Napišite numerički kod za ASCII znak 'a' u heksadecimalnom, binarnom i decimalnom obliku.
  8. Pretvorite 49,49 10 u bazu dva. Pretvorite svoj rezultat u IEEE 32-bitni format s pomičnim zarezom.
  9. a) Kako se IEEE 64-bitni format s pomičnim zarezom razlikuje od 32-bitnog formata?
    b) Navedite dva povezana razloga zašto je 64-bitni format opisan kao dvostruka ili veća preciznost u odnosu na
    32-bitni format.