Gdje se koristi binarni decimalni sistem? Predstavljanje brojeva u binarnom kodu. Pretvaranje brojeva: iz binarnog u decimalni

Binarni decimalni brojevni sistem. Decimalne cifre od 0 do 9 zamjenjuju se binarnim tetradama koje ih predstavljaju: 0=0000, 1=0001, 2=0010, 3=0011, 4=0100, 5=0101, 6=0110, 7=0111, 8=1000 i 9= 1001. Ova notacija se vrlo često koristi kao međukorak u pretvaranju broja iz decimalnog sistema u binarni ili obrnuto. Pošto 10 nije tačan stepen 2, ne koristi se svih 16 tetrada, a algoritmi za aritmetičke operacije nad višecifrenim brojevima su složeniji nego u osnovnim brojevnim sistemima. Pa ipak, binarni decimalni brojevni sistem se koristi čak i na ovom nivou u mnogim mikrokalkulatorima i nekim računarima (posebno, Yamaha MSX).

Budući da su reprezentacija i aritmetika u decimalnom brojevnom sistemu najpoznatije ljudima, a binarna reprezentacija i binarna aritmetika su najpoznatiji kompjuterima, uveden je kompromisni sistem binarno-decimalne notacije brojeva. Ovaj sistem se najčešće koristi tamo gde postoji potreba da se često koristi procedura decimalnog unosa/izlaza. (elektronski satovi, kalkulatori, brojevi pozivaoca, itd.). U takvim uređajima nije uvijek preporučljivo osigurati univerzalni mikrokod za pretvaranje binarnih brojeva u decimalne brojeve i obrnuto zbog male količine programske memorije.

Princip ovog sistema je prilično jednostavan: svaka decimalna cifra se pretvara direktno u njen 4-bitni decimalni ekvivalent, na primer: 369110=0011 0110 1001 0001DEC:

Decimala 3 6 9 1 BCD 0011 0110 1001 0001

Pretvorimo binarni decimalni broj 1000 0000 0111 0010 u njegov decimalni ekvivalent. Svaka grupa od 4 bita se pretvara u svoj decimalni ekvivalent. Dobijamo 1000 0000 0111 0010DEC = 807210:

BCD 1000 0000 0111 0010 Decimala 8 0 7 2

Mikroprocesori koriste čiste binarne brojeve, ali također razumiju komande za BCD konverziju. Rezultirajući binarni decimalni brojevi lako se predstavljaju decimalnim zapisom, što je ljudima razumljivije.

Pretvaranje binarnih brojeva u BCD

Aritmetičko-logička jedinica AVR mikrokontrolera (kao i drugih mikroprocesora) izvodi elementarne aritmetičke i logičke operacije nad brojevima predstavljenim u binarnom kodu. Rezultati ADC konverzije se čitaju u binarnom kodu; zgodno je obraditi rezultate mjerenja u binarnom kodu (u formatu cijelih brojeva ili brojeva s pomičnim zarezom). Međutim, kada se konačni rezultat prikaže na indikatoru, on se mora pretvoriti u decimalni format koji je čitljiv ljudima.

Ovaj odjeljak govori o programima za pretvaranje binarnih brojeva u BCD.

1. Formati za predstavljanje decimalnih brojeva

Trenutno postoje dva uobičajena formata za predstavljanje decimalnih brojeva u mikroprocesorima - upakovani binarno kodirani decimalni (BCD-Binary-Coded Decimal) i neupakovani decimalni kod.

Upakovani BCD kod je prikaz decimalnog broja gdje je svaka decimalna znamenka predstavljena 4-bitnim binarnim pozicionim kodom 8-4-2-1. U ovom slučaju, bajt sadrži dvije decimalne cifre. Najmanja značajna decimalna cifra zauzima desnu tetradu (bitovi 3: 0), najznačajnija decimalna cifra zauzima lijevu tetradu (bitovi 7: 4). Višebitni BCD brojevi zauzimaju nekoliko uzastopnih bajtova. Ako je broj potpisan, tada se najznačajnija tetrada najznačajnijeg bajta dodjeljuje da predstavlja znak u BCD formatu. Šest obrazaca binarnog koda može se koristiti za kodiranje znaka, koji se ne koriste za predstavljanje decimalnih znamenki. To su kodovi 1010-1111 (A-F u heksadecimalnom). Tipično, kod 1100 (C) se koristi za kodiranje znaka plus, a 1101 (D) za znak minus.

Raspakovani decimalni kod je podskup međunarodne tabele kodiranja ASCII znakova (Tabela 1). Može se vidjeti da je za pohranjivanje neupakovanih decimalnih brojeva potrebno dvostruko više memorije, jer je svaka cifra predstavljena 8-bitnim kodom. Tabela 1: ASCII kodovi za decimalne cifre

2. Pretvorite 16-bitne cijele brojeve u BCD brojeve

www.atmel.com nudi program "bin2bcd16" za pretvaranje 16-bitnih binarnih cijelih brojeva u upakovane BCD brojeve. Ovaj članak govori o programu "bin16bcd5" (pogledajte Dodatak, Program 1), koji je napisao A.V. Tereshkin prema algoritmu opisanom u, i koji obavlja isti zadatak. Pokazalo se da je drugi program efikasniji od prvog u smislu brzine, dužine koda i broja korištenih registara.

Algoritam programa "bin16bcd5" je sljedeći. Pretpostavimo da imamo 16-bitni cijeli broj bez predznaka (opseg od 0 do 65535). Očigledno, morate pronaći 5 decimalnih cifara. Metoda konverzije je da se od originalnog broja oduzme 10.000 i prvo odredi decimalna znamenka desetina hiljada. Zatim se broj hiljada nalazi uzastopnim oduzimanjem broja 1000, itd. Oduzimanje se vrši svaki put dok se ne dobije negativna razlika brojanjem broja oduzimanja. Prilikom prelaska na određivanje svake sljedeće decimale u registrima originalnog broja vraća se zadnja pozitivna razlika. Nakon što se pronađe decimalna znamenka desetice, decimalna cifra jedinica će ostati u originalnim registrima brojeva.

Program "bin16ASCII5" (pogledajte Dodatak, Program 2) pretvara 16-bitni binarni cijeli broj u nepakovani decimalni broj. Koristi se isti algoritam.

3. Pretvorite binarni razlomak u BCD

Binarni razlomak je, po definiciji, predstavljen sljedećim izrazom:

0.A-1A-2 ... A-m = A-1*2-1 + A-2*2-2 + ... A-m*2-m

Iz ovog prikaza slijedi algoritam transformacije (slika 2), koji sadrži m koraka. U svakom koraku binarno-decimalnom rezultatu dodaje se sljedeća binarna znamenka i cijeli rezultat se dijeli sa 2.

Prikazan je binarni registar koji sadrži originalni binarni razlomak i registar rezultata upakovan u BCD. Radi jasnoće, oba registra takođe pokazuju cifru jedinica i poziciju tačke, koji nisu ni na koji način predstavljeni u memoriji mikroprocesora, ali čija je pozicija uvek strogo određena. Broj ciklusa algoritma koji se razmatra jednak je broju bitova binarnog razlomka. Veličina bita binarnog decimalnog registra određena je potrebnom preciznošću izračunavanja.

Dodavanje ove cifre BCD broju znači da se ona mora staviti u cifru jedinice BCD broja, odakle će, nakon naknadnog dijeljenja sa dva, cifra A-i preći na najznačajniju znamenku najznačajnije tetrade decimalnog razlomka . Kada programiramo, možemo razmišljati o decimalnim jedinicama kao o C bitu za nošenje.

Prilikom dijeljenja upakovanog binarnog broja sa dva, kao i kod dijeljenja binarnog broja, on se pomjera za jedno mjesto udesno. U ovom slučaju, svaka tetrada, odnosno svaka decimalna znamenka, podijeljena je sa dva. Prilikom dijeljenja parne decimalne cifre na odgovarajuće mjesto, ponovo se dobija decimalna znamenka i nije potrebna korekcija. Kada se neparna decimalna znamenka dijeli sa 2, ostatak od 5 se mora dodati na donju decimalu, ali zapravo binarni pomak dodaje broj 8 (težinu najznačajnije tetradne cifre) donjoj tetradi. Zbog toga je potrebna korekcija rezultata, koja se sastoji od oduzimanja broja 3 od sadržaja onih sveska koje nakon pomeranja udesno imaju postavljene najznačajnije cifre.

4. Pretvaranje brojeva s pomičnim zarezom u BCD brojeve

Reprezentacija brojeva s pomičnim zarezom je kako slijedi:

gdje je M binarna mantisa broja, P je binarni red broja.

Ova reprezentacija se često koristi u decimalnom brojevnom sistemu za predstavljanje veoma velikih ili veoma malih brojeva. Mantisa i eksponent su predpisani cijeli brojevi. Znak mantise je znak cijelog broja. Redoslijed pokazuje pravi položaj točke umjesto onog koji zauzima na slici mantise. Binarni broj s pomičnim zarezom razlikuje se od decimalnog na koji smo navikli po tome što je tačka binarna, odnosno redoslijed označava broj binarnih (a ne decimalnih) cifara za koje se ova točka mora pomjeriti ulijevo ili udesno.

Normalizirana reprezentacija broja s pomičnim zarezom je reprezentacija u kojoj je mantisa pravilan razlomak i njena vodeća znamenka se razlikuje od nule. Ali za binarni broj, zahtjev da se vodeća znamenka razlikuje od nule znači da je ta cifra jednaka 1. Ako je vodeća znamenka precizno poznata, onda je ne treba pohranjivati ​​u memoriju.

Koncept mješovitog brojevnog sistema

Među brojevnim sistemima postoji klasa tzv mešoviti sistemi brojeva.

Definicija 1

Miješano to se zove ovo notacija, u kojem su brojevi navedeni u određenom brojevnom sistemu sa osnovom $P$ predstavljeni pomoću cifara drugog brojevnog sistema sa bazom $Q$, gdje je $Q

Štaviše, u takvom brojevnom sistemu, kako bi se izbjegla neslaganja u predstavljanju svake cifre sistema sa osnovom $P$, dodjeljuje se isti broj cifara sistema sa osnovom $Q$, dovoljan da predstavlja bilo koji cifra sistema sa osnovom $P$.

Primjer mješovitog brojevnog sistema je binarni decimalni sistem.

Praktično obrazloženje za korištenje binarnog decimalnog brojevnog sistema

Budući da osoba u svojoj praksi naširoko koristi decimalni brojevni sistem, a kompjuter obično radi sa binarnim brojevima i binarnom aritmetikom, u praksu je uvedena kompromisna opcija - sistem binarnog decimalnog zapisa, koji se obično koristi tamo gdje postoji potreba da se često koristi postupak decimalnog unosa/izlaza (na primjer, elektronski satovi, kalkulatori, itd.). U takvim uređajima nije uvijek preporučljivo koristiti univerzalni mikrokod za pretvaranje binarnih brojeva u decimalne brojeve i obrnuto zbog male količine programske memorije.

Napomena 1

U nekim tipovima računara, aritmetičko-logičke jedinice (ALU) sadrže posebne decimalne aritmetičke jedinice koje izvode operacije nad brojevima predstavljenim u binarnom decimalnom kodu. Ovo u nekim slučajevima omogućava značajno povećanje performansi računara.

Na primjer, automatizirani sistem za obradu podataka koristi veliki broj brojeva, ali ne izvodi mnogo kalkulacija. U tom slučaju, operacije prenosa brojeva iz jednog sistema u drugi bi znatno premašile vrijeme potrebno za obavljanje operacija obrade informacija. Mikroprocesori, s druge strane, koriste čiste binarne brojeve, ali također razumiju naredbe za pretvaranje u binarni decimalni zapis. ALU AVR mikrokontrolera (kao i drugih mikroprocesora) izvodi elementarne aritmetičke i logičke operacije nad brojevima predstavljenim u binarnom kodu, i to:

    čita rezultate ADC konverzije;

    u cjelobrojnom ili formatu s pomičnim zarezom, obrađuje rezultate mjerenja.

Međutim, konačni rezultat se prikazuje na indikatoru u decimalnom formatu koji je pogodan za ljudsku percepciju.

Principi konstruisanja binarno-dekadnog brojevnog sistema

Kada se konstruiše binarno-decimalni brojevni sistem, $4$ binarne cifre se dodeljuju za predstavljanje svake decimalne cifre, pošto je maksimalna decimalna znamenka $9$ kodirana kao $10012$.

Na primjer: $925_(10) = 1001 0010 0101_(2-10)$.

Slika 1.

U ovoj notaciji, uzastopne četvorke binarnih cifara predstavljaju cifre $9$, $2$ i $5$ decimalnog zapisa, respektivno.

Da biste zapisali broj u binarno-dekadnom brojevnom sistemu, on prvo mora biti predstavljen u decimalnom sistemu, a zatim svaka decimalna znamenka uključena u broj mora biti predstavljena u binarnom sistemu. Istovremeno, različiti brojevi binarnih cifara potrebni su za pisanje različitih decimalnih cifara u binarnom brojevnom sistemu. Da bi se izbjeglo korištenje bilo kakvih graničnika, kada se decimalna znamenka predstavlja u binarnom obliku, uvijek se pišu 4 binarne cifre. Grupa od ove četiri cifre se zove notebook.

Iako BCD notacija koristi samo cifre $0$ i $1$, razlikuje se od binarnog prikaza datog broja jer je decimalni ekvivalent binarnog broja nekoliko puta veći od decimalnog ekvivalenta BCD broja.

Na primjer:

$1001 0010 0101_{(2)} = 2341_{(10)}$,

$1001 0010 0101_{(2)} = 925_{(2-10)}$.

Ova notacija se često koristi kao međukorak pri pretvaranju broja iz decimalnog sistema u binarni i obrnuto. Pošto broj $10$ nije tačna snaga broja $2$, ne koriste se sve tetrade od $16$ (tetrade koje predstavljaju brojeve od $A$ do $F$ se odbacuju, jer se ovi brojevi smatraju zabranjenim), već algoritmi za aritmetiku operacije nad višecifrenim brojevima u ovom slučaju složenije nego u osnovnim brojevnim sistemima. Pa ipak, binarni decimalni brojevni sistem se koristi čak i na ovom nivou u mnogim mikrokalkulatorima i nekim računarima.

Za ispravljanje rezultata aritmetičkih operacija na brojevima predstavljenim u binarnom decimalnom kodu, mikroprocesorska tehnologija koristi komande koje konvertuju rezultate operacija u binarni decimalni brojevni sistem. Koristi se sljedeće pravilo: kada se kao rezultat operacije (sabiranja ili oduzimanja) u tetradi dobije broj veći od $9$, ovoj tetradi se dodaje broj $6$.

Na primjer: $75+18=$93.

$10001101\(8D)$

Zabranjena cifra $D$ pojavila se u niskoj bilježnici. Dodajte $6$ na nisku tetradu i dobijte:

$10010011 \ (93)$

Kao što vidite, uprkos činjenici da je sabiranje izvršeno u binarnom brojevnom sistemu, rezultat operacije je dobijen u binarno-decimalnom brojevnom sistemu.

Napomena 2

Pobitno balansiranje se često vrši na osnovu binarni decimalni brojevni sistem. Najprikladnija je upotreba binarnih i binarno-dekadnih brojevnih sistema, jer je u ovom slučaju broj ciklusa balansiranja najmanji među ostalim brojevnim sistemima. Imajte na umu da nam upotreba binarnog koda omogućava da smanjimo vrijeme obrade kompenzacijskog napona za približno $20\%$ u odnosu na binarno-decimalni kod.

Prednosti upotrebe binarnog decimalnog brojevnog sistema

Pretvaranje brojeva iz decimalnog sistema u binarni-dekadski brojevni sistem ne uključuje proračune i lako je implementirati pomoću jednostavnih elektronskih kola, jer se mali broj (4) binarnih cifara pretvara. Obrnuta konverzija se odvija automatski u računaru pomoću posebnog programa za prevođenje.

Upotreba binarno-dekadnog brojevnog sistema u sprezi sa jednim od glavnih brojevnih sistema (binarni) omogućava razvoj i kreiranje računara visokih performansi, jer upotreba decimalnog aritmetičkog bloka u ALU eliminiše potrebu za programiranom konverzijom brojeva iz jednog brojevnog sistema u drugi pri rješavanju zadataka.

Pošto dvije binarne decimalne cifre čine $1$ bajt, koji se može koristiti za predstavljanje vrijednosti brojeva od $0$ do $99$, a ne od $0$ do $255$, kao kod binarnog broja od $8$, onda koristeći $1$ bajt za Konvertovanjem svake dvije decimale, možete formirati BCD brojeve sa bilo kojim željenim brojem decimalnih mjesta.

Primjer mješovitog brojevnog sistema je binarni decimalni sistem . U BCD brojevnom sistemu, 4 binarne cifre se dodeljuju za svaku decimalnu cifru, pošto je maksimalna decimalna cifra 9 kodirana kao 1001 2. Na primjer,

925 10 = 1001 0010 0101 2-10 .

Ovdje uzastopne četvorke (tetrade) binarnih cifara predstavljaju cifre 9, 2 i 5 decimalnog zapisa, respektivno.

Iako BCD notacija koristi samo cifre 0 i 1, BCD notacija se razlikuje od binarnog prikaza datog broja. Na primjer, binarni kod 1001 0010 0101 odgovara decimalnom broju 2341, a ne 925.

Ako je P=Q l (l je pozitivan cijeli broj), reprezentacija bilo kojeg broja u mješovitom brojevnom sistemu identično se poklapa sa slikom ovog broja u brojevnom sistemu sa bazom Q. Primjeri takvog mješovitog brojevnog sistema su binarni- oktalno i binarno-heksadecimalno.

Na primjer,

A2 16 = 1010 0010 2 = 1010 0010 2-16

PREDSTAVLJANJE NEGATIVNIH BROJEVA U FORMATU FIKSNE TAČKE (TAČKE)

Da bi pojednostavili aritmetičke operacije, računari koriste posebne binarne kodove za predstavljanje negativnih brojeva: recipročnih i komplementarnih. Koristeći ove kodove, pojednostavljuje se određivanje predznaka rezultata operacije tokom algebarskog sabiranja. Operacija oduzimanja (ili algebarskog sabiranja) svodi se na aritmetičko sabiranje operanada, što olakšava razvijanje znakova prelijevanja bitske mreže. Kao rezultat toga, kompjuterski uređaji koji obavljaju aritmetičke operacije su pojednostavljeni.

Poznato je da je jedan od načina za izvođenje operacije oduzimanja zamijeniti znak oduzimanja njegovim suprotnim i dodati ga na minus:

A - B = A + (- B)

Ovo zamjenjuje operaciju aritmetičkog oduzimanja operacijom algebarskog sabiranja, koja se može izvesti pomoću binarnih sabirača.

Za mašinsko predstavljanje negativnih brojeva koriste se kodovi direktno, dodatno, obrnuto. Pojednostavljena definicija ovih kodova može se dati na sljedeći način. Ako je broj A u običnom binarnom kodu direktno binarni kod, prikazan kao

[A] pr = 0.an an-1 an-2.....a1 a0,

tada je broj -A u istom kodu predstavljen kao

[-A]pr = 1.an-1 an-2.....a1 a0,

i u obrnuto(inverzni) kod ovaj broj će izgledati ovako:

[-A]rev = 1.an-1 an-2.....a1 a0,

ai = 1 ako je ai = 0,

ai = 0, ako je ai = 1,

a i - cifra i-ta cifra binarnog broja. Shodno tome, kada se prelazi sa direktnog koda na reverzni kod, sve cifre bitova Matisseovog broja se invertuju.

Zatim broj -A in dodatno kod je predstavljen kao

[-A]dodaj = [-A]obr. + 1

Dakle, da biste dobili komplementarni kod negativnih brojeva, prvo morate invertirati digitalni dio originalnog broja, što rezultira njegovim obrnutim kodom, a zatim dodati jedan najmanje značajnoj znamenki digitalnog dijela broja.

Komplementarni kod određenog broja se dobija zamjenom novog broja, komplementarni na broj jednak težini cifre koja sledi najznačajniju cifru mreže bitova koja se koristi za predstavljanje mantise broja u formatu fiksne tačke. Stoga se takav brojčani kod naziva dodatnim.

Zamislimo da imamo samo dvije cifre koje predstavljaju brojeve u decimalnom brojevnom sistemu. Tada će maksimalni broj koji se može prikazati biti 99, a težina treće nepostojeće najviše cifre će biti 10 2, tj. 100. U ovom slučaju, za broj 20, komplementaran broj će biti 80, koji nadopunjuje 20 do 100 (100 - 20 = 80). Dakle, po definiciji, oduzimanje

može se zamijeniti dodatkom:

Ovdje najviša jedinica ide dalje od dodijeljene mreže bitova, u kojoj ostaje samo broj 30, tj. Rezultat oduzimanja broja 20 od 50.

Pogledajmo sada sličan primjer za brojeve predstavljene u 4-bitnom binarnom kodu. Nađimo dodatni broj za 0010 2 = 210. Trebamo oduzeti 0010 od 0000, dobićemo 1110, što je dodatni kod 2. Cifra prikazana u uglastim zagradama zapravo ne postoji. Ali pošto imamo 4-bitnu mrežu, u osnovi je nemoguće izvesti takvo oduzimanje, a još više pokušavamo da se riješimo oduzimanja. Stoga se dodatni brojni kod dobija na ranije opisan način, tj. prvo dobiju obrnuti kod broja, a zatim mu dodaju 1. Pošto smo sve ovo uradili sa našim brojem (2), nije teško vidjeti da će se dobiti sličan odgovor.

Naglasimo to Komplement dvojke i kodovi komplementa dvojke se koriste samo za predstavljanje negativnih binarnih brojeva u obliku fiksne točke. Pozitivni brojevi u ovim kodovima ne mijenjaju svoju sliku i predstavljeni su kao u direktnom kodu.

Dakle, digitalne cifre negativnog broja u direktni kod ostaju nepromijenjeni, a jedan je upisan u dijelu znaka.

Pogledajmo jednostavne primjere.

Sedam u direktnom kodu je predstavljeno na sljedeći način:

pr = 0,0001112

Broj -7 u direktnom kodu:

[-7]pr = 1,0001112,

a u obrnutom kodu to će izgledati

[-7]rev = 1,1110002,

one. jedinice se zamjenjuju nulama, a nule jedinicama. Isti broj u dva komplementa bi bio:

[-7]add = 1,1110012.

Razmotrimo još jednom kako se postupak oduzimanja, koristeći reprezentaciju oduzimanja u komplementnom kodu dvojke, svodi na proceduru sabiranja. Oduzmite broj 7 od 10: 10 - 7 = 3. Ako su oba operanda predstavljena u direktnom kodu, tada se postupak oduzimanja izvodi na sljedeći način:

-1.000111

A ako se može oduzeti, tj. -7, predstavljen u komplementarnom kodu za dva, tada se postupak oduzimanja svodi na postupak sabiranja:

+ 1.111001

1 0.000011 = 310.

Danas računari obično koriste kod komplementa dva da predstavljaju negativne brojeve u formatu fiksne tačke.

Oblik predstavljanja brojeva u digitalnim mašinama je skup pravila koja omogućavaju uspostavljanje međusobne korespondencije između zapisa broja i njegovog kvantitativnog ekvivalenta.

Mašinska (automatska) slika broja TO JE predstavljanje broja u bitskoj mreži digitalne mašine. Simbol za mašinsku sliku broja, na primjer, A, biće predstavljen kao [A].

Zbog ograničene dužine mašinskih reči, skup brojeva koji se mogu predstaviti u mašini je konačan. Poređenja između različitih oblika predstavljanja brojeva u računarima se obično vrše na osnovu procjene opseg i tačnost predstavljanja brojeva.

U svakodnevnoj praksi najčešći oblik predstavljanja brojeva je niz cifara odvojenih zarezom na cijeli broj i razlomak. Brojevi predstavljeni u ovom obliku nazivaju se brojevima sa prirodnim zarezom ili brojevima u prirodnom obliku. U prirodnom obliku, broj je napisan u svom prirodnom obliku, na primjer 12560 je cijeli broj, 0,003572 je pravi razlomak, 4,89760 je nepravilan razlomak.

Prilikom predstavljanja brojeva u ovom obliku, potrebno je da svaki broj naznači poziciju svog zareza u mreži bitova koja je dodijeljena da predstavlja broj u mašini, što zahtijeva dodatne hardverske troškove prilično velikog iznosa. Stoga su dva druga oblika predstavljanja postala široko rasprostranjena u kompjuterima: sa fiksnim i plutajućim zarezom (tačka).

Nema potrebe da se označava položaj zareza ako je mesto zareza u mreži bitova mašine unapred fiksirano jednom za svagda. Ovaj oblik predstavljanja brojeva naziva se reprezentacija sa fiksni zarez (tačka).

Pošto brojevi mogu biti pozitivni i negativni, format (bitna mreža) slike mašine se deli na kultni deo I polje broja. Polje broja sadrži sliku samog broja, koji ćemo konvencionalno nazvati mantissa brojevi. Za kodiranje predznaka broja koristi se najznačajnija znamenka mreže bitova rezervirana za sliku binarnog broja, a preostale cifre se dodjeljuju za mantisu broja. Položaj zareza u mreži bitova je strogo fiksiran, obično ili desno od najniže cifre mantise, ili lijevo od najviše. U prvom slučaju, broj je predstavljen kao cijeli broj, u drugom - kao pravi razlomak. Danas velika većina računara predstavlja cele brojeve u formatu fiksne tačke.

Dio sa znakom sadrži informacije o predznaku broja. Prihvaćeno je da znak pozitivan broj "+" predstavljen simbolom 0, a predznak je negativan broj "-" predstavljen simbolom 1.

Na primjer, u binarnom kodu, koristeći 6-bitnu mrežu, broj 7 u obliku fiksne točke može se predstaviti kao:

gdje je cifra lijevo od tačke znak broja, a pet cifara desno od tačke su mantisa broja u direktnom kodu. Ovdje se misli na to zarez je fiksiran desno od najmanje značajne cifre, a tačka na slici broja u ovom slučaju jednostavno odvaja bit znaka od mantise broja.

U budućnosti će se ova vrsta predstavljanja broja u mašinskom obliku često koristiti u primjerima. Možete koristiti drugi oblik predstavljanja broja u mašinskom obliku:

gdje je predznak odvojen uglastim zagradama.

Broj cifara u mreži bitova dodeljenih za predstavljanje mantise broja određuje opseg i tačnost reprezentacije broja sa fiksnom tačkom. Maksimalni binarni broj u apsolutnoj vrijednosti predstavljen je jedinicama u svim ciframa, osim predznaka jedan, tj. za cijeli broj

|A|max = (2 (n -1) - 1),

Gdje n- ukupna dužina mreže bitova. U slučaju 16-bitne mreže

|A| max = (2 (16-1) - 1) = 32767 10,

one. Raspon cijelobrojne reprezentacije u ovom slučaju će biti od +3276710 do -3276710.

Za slučaj kada je zarez fiksiran desno od niže cifre mantise, tj. za cijele brojeve, brojeve čiji je modul veći od

(2(n-1) - 1) i manje od jedan nisu predstavljeni u obliku fiksne tačke. Brojevi čija je apsolutna vrijednost manja od jedne od najmanje značajnih cifara mreže bitova nazivaju se u ovom slučaju mašinska nula. Negativna nula je zabranjena.

U nekim slučajevima, kada je moguće raditi samo sa modulima brojeva, cijela mreža bitova, uključujući i najznačajniji bit, dodjeljuje se za predstavljanje broja, što omogućava proširenje raspona predstavljanja brojeva.

Binarni decimalni brojevni sistem

Binarni decimalni brojevni sistem je postao široko rasprostranjen u modernim računarima zbog lakoće konverzije u decimalni sistem i obrnuto. Koristi se tamo gdje se glavna pažnja posvećuje ne jednostavnosti tehničke konstrukcije stroja, već praktičnosti korisnika. U ovom brojevnom sistemu, sve decimalne cifre su posebno kodirane sa četiri binarne cifre i u ovom obliku se pišu uzastopno jedna za drugom.

Binarni decimalni sistem nije ekonomičan sa stanovišta implementacije tehničke konstrukcije mašine (potrebna oprema se povećava za oko 20%), ali je veoma zgodan prilikom pripreme zadataka i programiranja. U binarnom decimalnom brojevnom sistemu, osnova brojevnog sistema je broj 10, ali svaka decimalna cifra (0, 1, ..., 9) je predstavljena, odnosno kodirana, binarnim ciframa. Četiri binarne cifre se koriste za predstavljanje jedne decimalne cifre. Ovdje, naravno, postoji redundancija, jer 4 binarne cifre (ili binarna tetrada) mogu predstavljati ne 10, već 16 brojeva, ali to je već proizvodni trošak radi pogodnosti programiranja. Postoji veliki broj binarno kodiranih decimalnih sistema za predstavljanje brojeva, koji se karakterišu time što se određenim kombinacijama nula i jedinica unutar jedne tetrade dodeljuju određene vrednosti decimalnih cifara.
Objavljeno na ref.rf
U najčešće korišćenom prirodnom binarno kodiranom decimalnom brojevnom sistemu, težine binarnih cifara unutar tetrade su prirodne, odnosno 8, 4, 2, 1 (tabela 6).

Tabela 6

Binarni decimalni zapis

Na primjer, decimalni broj 5673 u BCD zapisu je 01010110011100011.

Pretvaranje brojeva iz jednog brojevnog sistema u drugi važan je dio mašinske aritmetike. Razmotrimo osnovna pravila prevođenja.

1. Da biste binarni broj pretvorili u decimalni broj, potrebno je ᴇᴦο napisati kao polinom koji se sastoji od proizvoda cifara broja i odgovarajućeg stepena 2, te izračunati prema pravilima decimalne aritmetike˸

Prilikom prevođenja zgodno je koristiti tabelu stepena dva˸

Tabela 7.

Moći broja 2

n (stepen)

Primjer. Pretvorite broj u decimalni brojevni sistem.

2. Da bi se oktalni broj pretvorio u decimalni broj, potrebno je ᴇᴦο napisati kao polinom koji se sastoji od proizvoda cifara broja i odgovarajućeg stepena broja 8, te izračunati prema pravilima decimalne aritmetike˸

Prilikom prevođenja zgodno je koristiti tabelu potencija osam˸

Tabela 8.

Moći broja 8

n (stepen)
8 n

Binarni decimalni brojevni sistem - pojam i vrste. Klasifikacija i karakteristike kategorije "Binarni-decimalni brojevni sistem" 2015, 2017-2018.

Ovaj sistem ima bazu od S = 10, ali svaka cifra je predstavljena četvorobitnim binarnim brojem koji se naziva tetrada. Obično se ovaj sistem brojeva koristi u računarima prilikom unosa i izlaza informacija. Međutim, u nekim tipovima računara, ALU sadrži posebne decimalne aritmetičke blokove koji izvode operacije nad brojevima u binarnom decimalnom kodu. Ovo u nekim slučajevima omogućava značajno povećanje performansi računara.

Na primjer, u automatiziranom sistemu za obradu podataka postoji mnogo brojeva, ali malo kalkulacija. U ovom slučaju, operacije povezane s prijenosom brojeva iz jednog sistema u drugi bi značajno premašile vrijeme potrebno za obavljanje operacija obrade informacija.

Pretvaranje brojeva iz decimalnog sistema u BCD je vrlo jednostavno i sastoji se od zamjene svake cifre binarnom tetradom.

Primjer.

Zapišite decimalni broj 572,38 (10) u binarnom dekadnom brojevnom sistemu.

Obrnuti prijevod je također jednostavan: trebate podijeliti binarni decimalni broj na tetrade od tačke na lijevo (za cijeli broj) i nadesno (za razlomački dio), dodati potreban broj beznačajnih nula i zatim svaku tetradu zapišite kao decimalni broj.

Primjer.

Zapišite binarni decimalni broj 10010.010101 (2-10) u decimalni brojevni sistem.

Konverzija brojeva iz BCD u binarni sistem se vrši prema gore opisanim općim pravilima.

2.3. Oktalni sistem brojeva

U oktalnom brojevnom sistemu koristi se samo osam cifara, tj. ovaj brojevni sistem ima bazu S = 8. Općenito, oktalni broj izgleda ovako:

Gdje
.

Oktalni sistem brojeva nije potreban računaru, za razliku od binarnog sistema. Pogodan je kao kompaktan oblik pisanja brojeva i koriste ga programeri (na primjer, u programskim tekstovima za sažetiji i praktičniji način pisanja binarnih kodova naredbi, adresa i operanda). U oktalnom brojevnom sistemu, težina svake cifre je višekratnik osam ili jedne osmine, tako da osmobitni binarni broj omogućava da izrazite decimalne vrijednosti u rasponu od 0-255, a oktalni broj pokriva raspon 0 -99999999 (za binarni to je 27 cifara).

Pošto je 8=2 3, svaki oktalni znak se može predstaviti kao trobitni binarni broj. Da biste broj iz binarnog brojevnog sistema pretvorili u oktalni brojevni sistem, morate ovaj broj podijeliti lijevo (za cijeli broj) i desno (za razlomak) od tačke (zarez) u grupe od tri cifre (trijade) i predstavljaju svaku grupu brojem u oktalnom brojevnom sistemu. Ekstremne nepotpune trozvuke dopunjuju se potrebnim brojem beznačajnih nula.

Primjer.

Zapišite binarni broj 10101011111101 (2) u oktalnom brojevnom sistemu.

Primjer.

Upišite binarni broj 1011.0101 (2) u oktalni brojevni sistem.

Konverzija iz oktalnog u binarni se vrši predstavljanjem svake cifre oktalnog broja kao trocifreni binarni broj (trijada).

2.4. Heksadecimalni sistem brojeva

Ovaj brojevni sistem ima bazu od S = 16. Generalno, heksadecimalni broj izgleda ovako:

Gdje
.

Heksadecimalni brojevni sistem omogućava još kraće pisanje višebitnih binarnih brojeva i, pored toga, skraćivanje zapisa 4-bitnog binarnog broja, tj. grickanje, budući da je 16=2 4 . Heksadecimalni sistem se takođe koristi u programskim tekstovima za konciznije i pogodnije snimanje binarnih brojeva.

Da biste broj iz binarnog brojevnog sistema pretvorili u heksadecimalni, morate ovaj broj lijevo i desno od tačke podijeliti na tetrade i svaku tetradu predstaviti cifrom u heksadecimalnom brojevnom sistemu.

Primjer.

Zapišite binarni broj 10101011111101 (2) heksadecimalno.

Primjer.

Zapišite binarni broj 11101.01111 (2) heksadecimalno.

Za konvertovanje broja iz heksadecimalnog sistema brojeva u binarni sistem brojeva, potrebno je, naprotiv, svaku cifru ovog broja zamijeniti tetradom.

U zaključku, treba napomenuti da se prijenos proizvoljnih brojeva iz jednog brojevnog sistema u drugi može izvršiti prema općim pravilima opisanim u odjeljku „Binarni brojevni sistem“. Međutim, u praksi se konverzije brojeva iz decimalnog sistema u razmatrane brojevne sisteme i obrnuto vrše kroz binarni brojevni sistem.

Takođe, zapamtite da su heksadecimalni i oktalni brojevi samo način predstavljanja velikih binarnih brojeva na kojima procesor zapravo radi. U ovom slučaju je poželjniji heksadecimalni sistem, jer u savremenim računarima procesori manipulišu rečima dužine 4, 8, 16, 32 ili 64 bita, tj. dužina riječi je višestruka od 4. U oktalnom brojevnom sistemu preferiraju se riječi koje su višekratnici od 3 bita, na primjer, riječi dužine 12 bita (kao u PDP-8 iz DEC-a).