Kur tiek izmantota binārā decimālā sistēma? Skaitļu attēlojums binārajā kodā. Skaitļu konvertēšana: no binārā uz decimālo

Binārā decimālo skaitļu sistēma. Decimālskaitļi no 0 līdz 9 tiek aizstāti ar binārajām tetradēm, kas tos attēlo: 0=0000, 1=0001, 2=0010, 3=0011, 4=0100, 5=0101, 6=0110, 7=0111, 8=1000 un 9 = 1001. Šo apzīmējumu ļoti bieži izmanto kā starpposmu, pārvēršot skaitli no decimāldaļas uz bināru vai otrādi. Tā kā 10 nav precīza 2. pakāpe, netiek izmantotas visas 16 tetradas, un aritmētisko darbību algoritmi ar daudzciparu skaitļiem ir sarežģītāki nekā pamata skaitļu sistēmās. Un tomēr bināro decimālo skaitļu sistēma tiek izmantota pat šajā līmenī daudzos mikrokalkulatoros un dažos datoros (jo īpaši Yamaha MSX).

Tā kā attēlojums un aritmētika decimālo skaitļu sistēmā ir vispazīstamāk cilvēkiem, bet binārā attēlošana un binārā aritmētika ir vispazīstamākā datoriem, tika ieviesta kompromisa sistēma skaitļu bināro-decimālo pierakstu sistēmā. Šo sistēmu visbiežāk izmanto, ja ir nepieciešams bieži izmantot decimāldaļas ievades/izvades procedūru. (elektroniskie pulksteņi, kalkulatori, zvanītāja numuri utt.). Šādās ierīcēs ne vienmēr ir ieteicams nodrošināt universālu mikrokodu bināro skaitļu konvertēšanai decimālskaitļos un otrādi, jo programmas atmiņas apjoms ir mazs.

Šīs sistēmas princips ir pavisam vienkāršs: katrs decimālskaitlis tiek tieši pārvērsts tā 4 bitu decimāldaļas ekvivalentā, piemēram: 369110=0011 0110 1001 0001DEC:

Decimālskaitlis 3 6 9 1 Binārs decimālskaitlis 0011 0110 1001 0001

Pārvērsīsim bināro decimālskaitli 1000 0000 0111 0010 par tā decimālo ekvivalentu. Katra 4 bitu grupa tiek pārvērsta tās decimāldaļās ekvivalentā. Mēs saņemam 1000 0000 0111 0010DEC = 807210:

BCD 1000 0000 0111 0010 decimālzīme 8 0 7 2

Mikroprocesori izmanto tīrus bināros skaitļus, taču saprot arī BCD konvertēšanas komandas. Iegūtie binārie decimālskaitļi ir viegli attēloti decimāldaļās, kas cilvēkiem ir saprotamāk.

Bināro skaitļu konvertēšana uz BCD

AVR mikrokontrolleru (kā arī citu mikroprocesoru) aritmētiski loģiskā vienība veic elementāras aritmētiskās un loģiskās darbības ar skaitļiem, kas attēloti binārajā kodā. ADC konvertēšanas rezultāti tiek nolasīti binārā kodā, ir ērti apstrādāt mērījumu rezultātus binārā kodā (veselu skaitļu vai peldošā komata skaitļu formātā). Tomēr, kad gala rezultāts tiek parādīts uz indikatora, tas ir jāpārveido cilvēkam lasāmā decimāldaļas formātā.

Šajā sadaļā ir apskatītas programmas bināro skaitļu konvertēšanai BCD.

1. Decimālskaitļu attēlošanas formāti

Pašlaik ir divi izplatīti formāti decimālo skaitļu attēlošanai mikroprocesoros - iepakots bināri kodēts decimālais (BCD-Binary-Coded Decimal) un neiepakots decimālais kods.

Iepakots BCD kods ir decimālskaitļa attēlojums, kur katrs decimālskaitlis ir attēlots ar 4 bitu bināro pozīcijas kodu 8-4-2-1. Šajā gadījumā baitā ir divi cipari aiz komata. Vismazāk nozīmīgais decimālciparu cipars aizņem labo tetradi (biti 3: 0), nozīmīgākais decimālais cipars aizņem kreiso tetradi (biti 7: 4). Vairāku bitu BCD numuri aizņem vairākus blakus baitus. Ja skaitlis ir parakstīts, tad nozīmīgākā baita nozīmīgākā tetrada tiek piešķirta, lai attēlotu zīmi BCD formātā. Rakstzīmes kodēšanai var izmantot sešus bināro kodu modeļus, kurus neizmanto, lai attēlotu decimālciparus. Tie ir kodi 1010-1111 (A-F heksadecimālā formā). Parasti pluszīmes kodēšanai tiek izmantots kods 1100 (C), bet mīnusa zīmei - 1101 (D).

Neiesaiņotais decimālais kods ir starptautiskās ASCII rakstzīmju kodēšanas tabulas apakškopa (1. tabula). Var redzēt, ka neiesaiņotu decimālo skaitļu glabāšanai ir nepieciešams divreiz vairāk atmiņas, jo katrs cipars tiek attēlots ar 8 bitu kodu. 1. tabula. ASCII kodi decimālskaitļiem

2. Pārvērtiet 16 bitu veselus skaitļus par BCD skaitļiem

www.atmel.com piedāvā programmu "bin2bcd16", lai pārvērstu 16 bitu bināros veselus skaitļus iepakotos BCD skaitļos. Šajā rakstā ir apskatīta programma "bin16bcd5" (skat. Pielikumu, 1. programma), kuru sarakstījis A.V. Tereškins saskaņā ar aprakstīto algoritmu un kas veic to pašu uzdevumu. Pēdējā programma izrādījās efektīvāka nekā pirmā ātruma, koda garuma un izmantoto reģistru skaita ziņā.

Programmas "bin16bcd5" algoritms ir šāds. Pieņemsim, ka mums ir neparakstīts 16 bitu vesels skaitlis (diapazons no 0 līdz 65535). Acīmredzot, jums ir jāatrod 5 cipari aiz komata. Pārvēršanas metode ir no sākotnējā skaitļa atņemt 10 000 un vispirms noteikt desmitiem tūkstošu decimālciparu. Tad tiek atrasts tūkstošu skaitlis, secīgi atņemot skaitli 1000 utt. Atņemšana tiek veikta katru reizi, līdz tiek iegūta negatīva starpība, saskaitot atņemšanu. Pārejot uz katras nākamās decimāldaļas noteikšanu sākotnējā skaitļa reģistros, tiek atjaunota pēdējā pozitīvā starpība. Pēc tam, kad ir atrasts desmitiem decimālais cipars, vienību decimālais cipars paliks sākotnējos skaitļu reģistros.

Programma "bin16ASCII5" (sk. Pielikumu, 2. programma) pārveido 16 bitu bināru veselu skaitli par neiesaiņotu decimālo skaitli. Tiek izmantots tas pats algoritms.

3. Pārvērtiet bināro daļu par BCD

Binārā daļa pēc definīcijas tiek attēlota ar šādu izteiksmi:

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

No šī attēlojuma izriet transformācijas algoritms (2. att.), kas satur m soļus. Katrā solī nākamais binārais cipars tiek pievienots binārajam decimālajam rezultātam un viss rezultāts tiek dalīts ar 2.

Parādīts binārais reģistrs, kas satur sākotnējo bināro daļu un BCD iepakotu rezultātu reģistru. Skaidrības labad abos reģistros ir redzams arī to vienību cipars un punkta pozīcija, kas mikroprocesora atmiņā nekādā veidā netiek attēloti, bet kuru atrašanās vieta vienmēr ir stingri noteikta. Aplūkojamā algoritma ciklu skaits ir vienāds ar binārās daļas bitu skaitu. Binārā decimālā reģistra bitu lielumu nosaka nepieciešamā aprēķinu precizitāte.

Šī cipara pievienošana BCD numuram nozīmē, ka tas ir jāievieto BCD skaitļa vienību ciparā, no kura pēc turpmākās dalīšanas ar divi cipars A-i pāriet uz decimāldaļas nozīmīgākās tetrades nozīmīgāko ciparu. . Programmējot, mēs varam domāt par decimālo vienību vietu kā C pārneses bitu.

Dalot iepakoto bināro skaitli ar divi, tāpat kā dalot bināro skaitli, tas tiek nobīdīts pa labi par vienu vietu. Šajā gadījumā katra tetrada, tas ir, katrs decimālskaitlis, tiek dalīts ar diviem. Sadalot pāra decimālciparu attiecīgajā vietā, atkal tiek iegūts decimālskaitlis un labojums nav nepieciešams. Dalot ar 2 nepāra decimālciparu, atlikušais 5 jāpievieno zemākajai zīmei aiz komata, bet faktiski binārā nobīde pievieno skaitli 8 (nozīmīgākā tetrades cipara svaru) zemākajai tetradai. Tāpēc ir nepieciešama rezultāta korekcija, kas sastāv no skaitļa 3 atņemšanas no to piezīmju grāmatiņu satura, kurām pēc pārslēgšanas pa labi ir iestatīti nozīmīgākie cipari.

4. Peldošā komata skaitļu konvertēšana BCD skaitļos

Peldošā komata skaitļu attēlojums ir šāds:

kur M ir skaitļa binārā mantisa, P ir skaitļa binārā secība.

Šo attēlojumu bieži izmanto decimālo skaitļu sistēmā, lai attēlotu ļoti lielus vai ļoti mazus skaitļus. Mantisa un eksponents ir veseli skaitļi. Mantisas zīme ir visa skaitļa zīme. Pasūtījums parāda punkta patieso pozīciju, nevis to, ko tas ieņem mantisas attēlā. Binārs peldošā komata skaitlis atšķiras no mums ierastā decimālskaitļa ar to, ka punkts ir binārs, tas ir, secība norāda bināro (nevis decimālo) ciparu skaitu, par kādu šis punkts ir jāpārvieto pa kreisi vai pa labi.

Peldošā komata skaitļa normalizēts attēlojums ir attēlojums, kurā mantisa ir pareiza daļa un tās pirmais cipars atšķiras no nulles. Bet binārajam skaitlim prasība, ka sākuma cipars atšķiras no nulles, nozīmē, ka šis cipars ir vienāds ar 1. Ja galvenais cipars ir precīzi zināms, tas nav jāsaglabā atmiņā.

Jauktas skaitļu sistēmas jēdziens

Starp skaitļu sistēmām ir tā saukto klase jauktās skaitļu sistēmas.

1. definīcija

Jaukti to sauc šitā apzīmējums, kurā skaitļi, kas norādīti noteiktā skaitļu sistēmā ar bāzi $P$, tiek attēloti, izmantojot citas skaitļu sistēmas ciparus ar bāzi $Q$, kur $Q

Turklāt šādā skaitļu sistēmā, lai izvairītos no neatbilstībām katra sistēmas cipara attēlojumā ar bāzi $P$, sistēmai ar bāzi $Q$ tiek piešķirts vienāds ciparu skaits, kas ir pietiekams, lai attēlotu jebkuru sistēmas cipars ar bāzi $P$.

Jauktas skaitļu sistēmas piemērs ir binārā-decimālā sistēma.

Praktisks pamatojums bināro decimālo skaitļu sistēmas lietošanai

Tā kā cilvēks savā praksē plaši izmanto decimālo skaitļu sistēmu un dators parasti darbojas ar bināriem skaitļiem un bināro aritmētiku, praksē tika ieviesta kompromisa iespēja - bināro decimālo apzīmējumu sistēma, ko parasti izmanto, ja ir nepieciešams bieži izmantot decimāldaļas ievades/izvades procedūru (piemēram, elektroniskie pulksteņi, kalkulatori utt.). Šādās ierīcēs ne vienmēr ir ieteicams izmantot universālo mikrokodu, lai pārveidotu bināros skaitļus decimālskaitļos un otrādi, jo ir mazs programmas atmiņas apjoms.

1. piezīme

Dažos datoru veidos aritmētiskās loģiskās vienības (ALU) satur īpašas decimālās aritmētiskās vienības, kas veic darbības ar skaitļiem, kas attēloti binārā decimālkodā. Tas dažos gadījumos ļauj ievērojami palielināt datora veiktspēju.

Piemēram, automatizētā datu apstrādes sistēma izmanto lielu skaitu skaitļu, bet neveic daudz aprēķinu. Šādā gadījumā numuru pārsūtīšanas operācijas no vienas sistēmas uz otru ievērojami pārsniegtu informācijas apstrādes darbību veikšanai nepieciešamo laiku. No otras puses, mikroprocesori izmanto tīrus bināros skaitļus, taču tie saprot arī komandas, lai pārveidotu par bināro decimālo apzīmējumu. AVR mikrokontrollera ALU (kā arī citi mikroprocesori) veic elementāras aritmētiskās un loģiskās darbības ar skaitļiem, kas attēloti binārajā kodā, proti:

    nolasa ADC konversijas rezultātus;

    vesela skaitļa vai peldošā komata formātā apstrādā mērījumu rezultātus.

Tomēr gala rezultāts uz indikatora tiek parādīts cilvēka uztverei ērtā decimālā formātā.

Bināro-decimālo skaitļu sistēmas konstruēšanas principi

Veidojot bināro decimālo skaitļu sistēmu, katra decimālskaitļa attēlošanai tiek piešķirti $4$ binārie cipari, jo maksimālais decimālais cipars $9$ ir kodēts kā $10012$.

Piemēram: $925_(10) = 1001 0010 0101_(2-10)$.

1. attēls.

Šajā apzīmējumā secīgi bināro ciparu četrkārši apzīmē attiecīgi decimāldaļas ciparus $9$, $2$ un $5$.

Lai ierakstītu skaitli bināro-decimālo skaitļu sistēmā, tas vispirms ir jāattēlo decimālajā sistēmā, un pēc tam katrs cipars, kas iekļauts ciparā, ir jāattēlo binārajā sistēmā. Tajā pašā laikā, lai binārajā skaitļu sistēmā ierakstītu dažādus decimālciparus, ir nepieciešami dažādi bināro ciparu skaitļi. Lai izvairītos no jebkādu norobežotāju izmantošanas, attēlojot decimālciparu binārā formā, vienmēr tiek rakstīti 4 bināri cipari. Šo četru ciparu grupu sauc piezīmju grāmatiņa.

Lai gan BCD apzīmējums izmanto tikai ciparus $0$ un $1$, tas atšķiras no dotā skaitļa binārā attēlojuma, jo binārā skaitļa decimālais ekvivalents ir vairākas reizes lielāks nekā BCD skaitļa decimālais ekvivalents.

Piemēram:

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

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

Šo apzīmējumu diezgan bieži izmanto kā starpposmu, pārvēršot skaitli no decimāldaļas uz bināro sistēmu un otrādi. Tā kā skaitlis $10$ nav precīzs skaitļa $2$ pakāpiens, tiek izmantotas ne visas $16$ tetradas (tetradas, kas attēlo skaitļus no $A$ līdz $F$, tiek izmestas, jo šie skaitļi tiek uzskatīti par aizliegtiem), bet gan aritmētikas algoritmi. operācijas ar daudzciparu skaitļiem šajā gadījumā ir sarežģītākas nekā pamata skaitļu sistēmās. Un tomēr bināro decimālo skaitļu sistēma tiek izmantota pat šajā līmenī daudzos mikrokalkulatoros un dažos datoros.

Lai labotu aritmētisko darbību rezultātus ar skaitļiem, kas attēloti binārā decimālkodā, mikroprocesoru tehnoloģija izmanto komandas, kas pārvērš darbību rezultātus binārajā decimālskaitļu sistēmā. Tiek izmantots šāds noteikums: ja darbības (saskaitīšanas vai atņemšanas) rezultātā tetradā tiek iegūts skaitlis, kas ir lielāks par $9$, šai tetradē tiek pievienots skaitlis $6$.

Piemēram: $75+18=$93.

$10001101\(8D)$

Aizliegtais cipars $D$ parādījās apakšējā piezīmju grāmatiņā. Pievienojiet $ 6 $ zemajai tetradai un iegūstiet:

$10010011 \ (93)$

Kā redzat, neskatoties uz to, ka saskaitīšana tika veikta binārajā skaitļu sistēmā, darbības rezultāts tika iegūts bināro-decimālo skaitļu sistēmā.

2. piezīme

Bitu balansēšana bieži tiek veikta, pamatojoties uz binārā decimālā skaitļu sistēma. Vispiemērotākā ir bināro un bināro-decimālo skaitļu sistēmu izmantošana, jo šajā gadījumā balansēšanas ciklu skaits ir mazākais starp citām skaitļu sistēmām. Ņemiet vērā, ka binārā koda izmantošana ļauj samazināt kompensējošā sprieguma apstrādes laiku par aptuveni $20\%$, salīdzinot ar bināro decimālo kodu.

Bināro decimālo skaitļu sistēmas izmantošanas priekšrocības

Skaitļu konvertēšana no decimālās sistēmas uz bināro-decimālo skaitļu sistēmu neietver aprēķinus, un to ir viegli īstenot, izmantojot vienkāršas elektroniskās shēmas, jo tiek pārveidots neliels skaits (4) bināro ciparu. Reversā konvertēšana notiek automātiski datorā, izmantojot īpašu tulkošanas programmu.

Bināro-decimālo skaitļu sistēmas izmantošana kopā ar vienu no galvenajām skaitļu sistēmām (bināro) ļauj izstrādāt un izveidot augstas veiktspējas datorus, jo decimāldaļas aritmētiskā bloka izmantošana ALU novērš nepieciešamību pēc programmētas pārveidošanas. skaitļus no vienas skaitļu sistēmas uz citu, risinot uzdevumus.

Tā kā divi bināri cipari aiz komata veido $1$ baitu, ko var izmantot, lai attēlotu skaitļu vērtības no $0$ līdz $99$, nevis no $0$ līdz $255$, kā tas ir ar $8$ bitu bināro skaitli, tad izmantojot $1$ baitu priekš Pārvēršot katrus divus ciparus aiz komata, varat veidot BCD skaitļus ar jebkuru vēlamo zīmju skaitu aiz komata.

Jauktas skaitļu sistēmas piemērs ir binārā decimālā sistēma . BCD skaitļu sistēmā katram decimālciparam tiek piešķirti 4 binārie cipari, jo maksimālais decimālais cipars 9 ir kodēts kā 1001 2. Piemēram,

925 10 = 1001 0010 0101 2-10 .

Šeit secīgie bināro ciparu četrinieki (tetrades) apzīmē attiecīgi decimāldaļas ciparus 9, 2 un 5.

Lai gan BCD apzīmējums izmanto tikai ciparus 0 un 1, BCD apzīmējums atšķiras no dotā skaitļa binārā attēlojuma. Piemēram, binārais kods 1001 0010 0101 atbilst decimālajam skaitlim 2341, nevis 925.

Ja P=Q l (l ir pozitīvs vesels skaitlis), jebkura skaitļa attēlojums jauktā skaitļu sistēmā identiski sakrīt ar šī skaitļa attēlu skaitļu sistēmā ar bāzi Q. Šādas jauktas skaitļu sistēmas piemēri ir bināri- oktālā un binārā-heksadecimālā.

Piemēram,

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

NEGATĪVO SKAITĻU ATTĒLOŠANA FIKSĒTA PUNKTA FORMĀTĀ (PUNKTI)

Lai vienkāršotu aritmētiskās darbības, datori izmanto īpašus bināros kodus, lai attēlotu negatīvus skaitļus: savstarpējo un komplementāro. Izmantojot šos kodus, ir vienkāršota darbības rezultāta zīme noteikšana algebriskās saskaitīšanas laikā. Atņemšanas (vai algebriskās saskaitīšanas) darbība tiek reducēta līdz operandu aritmētiskajai saskaitīšanai, tādējādi atvieglojot bitu režģa pārpildes pazīmju izstrādi. Rezultātā tiek vienkāršotas datoru ierīces, kas veic aritmētiskās darbības.

Ir zināms, ka viens no veidiem, kā veikt atņemšanas darbību, ir aizstāt apakšdaļas zīmi ar pretējo un pievienot to minuend:

A — B = A + (– B)

Tas aritmētiskās atņemšanas darbību aizstāj ar algebriskās saskaitīšanas darbību, ko var veikt, izmantojot bināros summētājus.

Negatīvu skaitļu mašīnveida attēlošanai tiek izmantoti kodi tiešs, papildu, reverss. Šo kodu vienkāršotu definīciju var sniegt šādi. Ja cipars A parastajā binārajā kodā ir tiešā veidā binārais kods, kas attēlots kā

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

tad skaitlis -A tajā pašā kodā tiek attēlots kā

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

un iekšā otrādi(apgrieztais) kods šis skaitlis izskatīsies šādi:

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

ai = 1, ja ai = 0,

ai = 0, ja ai = 1,

a i - cipars i- tas bināra skaitļa cipars. Līdz ar to, pārejot no tiešā koda uz apgriezto kodu, visi Matisa skaitļa bitu cipari tiek apgriezti.

Tad skaitlis -A collā papildu kods tiek attēlots kā

[-A]pievienot = [-A]apgr. + 1

Tādējādi, lai iegūtu negatīvo skaitļu papildkodu, vispirms ir jāapgriež sākotnējā skaitļa digitālā daļa, kā rezultātā tiek iegūts tā apgrieztais kods, un pēc tam jāpievieno viens skaitļa digitālās daļas vismazāk nozīmīgajam ciparam.

Noteikta numura papildkods tiek iegūts, aizstājot to ar jaunu, papildinoši to uz skaitli, kas vienāds ar tā cipara svaru, kas seko nozīmīgākajam ciparam bitu režģī, ko izmanto, lai attēlotu skaitļa mantisu fiksēta punkta formātā. Tāpēc šādu numura kodu sauc par papildu.

Iedomāsimies, ka mums ir tikai divi cipari, lai attēlotu skaitļus decimālo skaitļu sistēmā. Tad maksimālais attēlojamais skaitlis būs 99, un trešā neesošā augstākā cipara svars būs 10 2, t.i. 100. Šajā gadījumā skaitlim 20 papildu skaitlis būs 80, kas papildina 20 līdz 100 (100 - 20 = 80). Tāpēc pēc definīcijas atņemšana

var aizstāt ar papildinājumu:

Šeit augstākā vienība pārsniedz piešķirto bitu režģi, kurā paliek tikai skaitlis 30, t.i. Rezultāts, atņemot skaitli 20 no 50.

Tagad apskatīsim līdzīgu piemēru skaitļiem, kas attēloti 4 bitu binārajā kodā. Atradīsim papildu skaitli 0010 2 = 210. No 0000 jāatņem 0010, mēs iegūstam 1110, kas ir papildu kods 2. Kvadrātiekavās norādītais cipars faktiski neeksistē. Bet, tā kā mums ir 4 bitu režģis, šādu atņemšanu būtībā nav iespējams veikt, un vēl jo vairāk mēs cenšamies atbrīvoties no atņemšanas. Tāpēc papildu numura kods tiek iegūts iepriekš aprakstītajā veidā, t.i. vispirms viņi iegūst skaitļa apgriezto kodu un pēc tam pievieno tam 1. To visu izdarījuši ar mūsu numuru (2), nav grūti saprast, ka tiks iegūta līdzīga atbilde.

Uzsvērsim to Divu komplementa un divu komplementa kodus izmanto tikai, lai attēlotu negatīvus bināros skaitļus fiksēta punkta formā. Pozitīvie skaitļi šajos kodos nemaina to attēlu un tiek attēloti kā tiešajā kodā.

Tādējādi negatīva skaitļa ciparu cipari iekšā tiešais kods paliek nemainīgs, un viens tiek ierakstīts zīmju daļā.

Apskatīsim vienkāršus piemērus.

Septiņi tiešajā kodā ir attēloti šādi:

pr = 0,0001112

Numurs -7 tiešajā kodā:

[-7]pr = 1,0001112,

un apgrieztā kodā tas izskatīsies

[-7]rev = 1,1110002,

tie. vieninieki tiek aizstāti ar nullēm, bet nulles ar vieniniekiem. Tas pats skaitlis divu papildinājumā būtu:

[-7]pievienot = 1,1110012.

Vēlreiz apskatīsim, kā atņemšanas procedūra, izmantojot apakšdaļas attēlojumu divu komplementa kodā, tiek reducēta līdz saskaitīšanas procedūrai. Atņemiet skaitli 7 no 10: 10 - 7 = 3. Ja abi operandi ir uzrādīti tiešā kodā, tad atņemšanas procedūru veic šādi:

-1.000111

Un ja subtrahendable, t.i. -7, kas parādīts divu komplementa kodā, tad atņemšanas procedūra tiek samazināta līdz saskaitīšanas procedūrai:

+ 1.111001

1 0.000011 = 310.

Mūsdienās datori parasti izmanto divu komplementa kodu, lai attēlotu negatīvus skaitļus fiksēta punkta formātā.

Ciparu attēlojuma forma digitālajās iekārtās ir noteikumu kopums, kas ļauj noteikt savstarpēju atbilstību starp skaitļa ierakstu un tā kvantitatīvo ekvivalentu.

Mašīnas (automātiskais) skaitļa attēls tas ir skaitļa attēlojums digitālās mašīnas bitu režģī. Skaitļa mašīnas attēla simbols, piemēram, A, tiks attēlots kā [A].

Mašīnvārdu ierobežotā garuma dēļ skaitļu kopa, ko var attēlot mašīnā, ir ierobežota. Salīdzinājumus starp dažādām skaitļu attēlojuma formām datoros parasti veic, pamatojoties uz tāmi skaitļu attēlojuma diapazons un precizitāte.

Ikdienas praksē visizplatītākais skaitļu attēlošanas veids ir ciparu secība, kas atdalīta ar komatu veselā skaitļa un daļskaitļa daļās. Skaitļus, kas attēloti šajā formā, sauc par cipariem ar dabisku komatu vai skaitļiem dabiskā formā. Dabiskā formā skaitlis tiek rakstīts tā dabiskajā formā, piemēram, 12560 ir vesels skaitlis, 0,003572 ir pareiza daļa, 4,89760 ir nepareiza daļa.

Attēlojot skaitļus šajā formā, katram ciparam ir jānorāda sava komata vieta bitu režģī, kas piešķirts skaitļa attēlošanai mašīnā, kas prasa diezgan lielas papildu aparatūras izmaksas. Tāpēc datoros ir kļuvuši plaši izplatīti divi citi attēlojuma veidi: ar fiksētu un peldošo komatu (punktu).

Komata vieta nav jānorāda, ja komata vieta mašīnas bitu režģī ir iepriekš fiksēta uz visiem laikiem. Šo skaitļu attēlošanas veidu sauc par attēlojumu ar fiksēts komats (punkts).

Tā kā skaitļi var būt pozitīvi un negatīvi, mašīnas attēla formāts (bitu režģis) tiek sadalīts ikoniskā daļa Un numura lauks. Numura laukā ir paša numura attēls, ko mēs parasti sauksim mantisa cipariem. Lai kodētu skaitļa zīmi, tiek izmantots binārā skaitļa attēlam rezervētā bitu režģa nozīmīgākais cipars, bet atlikušie cipari tiek piešķirti skaitļa mantisai. Komata novietojums bitu režģī ir stingri fiksēts, parasti vai nu pa labi no mantisas zemākā cipara, vai pa kreisi no augstākā. Pirmajā gadījumā skaitlis tiek attēlots kā vesels skaitlis, otrajā - kā pareiza daļa. Mūsdienās lielākā daļa datoru attēlo veselus skaitļus fiksēta punkta formātā.

Zīmju daļā ir informācija par skaitļa zīmi. Ir pieņemts, ka zīme pozitīvs skaitlis "+" attēlots ar simbolu 0, un zīme ir negatīvs skaitlis "-" attēlots ar simbolu 1.

Piemēram, binārajā kodā, izmantojot 6 bitu režģi, skaitli 7 fiksētā punkta formā var attēlot kā:

kur cipars pa kreisi no punkta ir skaitļa zīme, bet pieci cipari pa labi no punkta ir skaitļa mantisa tiešajā kodā. Šeit ir domāts tas komats ir fiksēts pa labi no vismazāk nozīmīgā cipara, un punkts skaitļa attēlā šajā gadījumā vienkārši atdala zīmes bitu no skaitļa mantisas.

Nākotnē piemēros bieži tiks izmantots šāda veida skaitļa attēlojums mašīnas formā. Varat izmantot citu skaitļa attēlojuma veidu mašīnas formā:

kur zīmes bits ir atdalīts ar kvadrātiekavām.

Ciparu skaits bitu režģī, kas piešķirts, lai attēlotu skaitļa mantisu, nosaka fiksētā punkta skaitļa attēlojuma diapazonu un precizitāti. Maksimālais binārais skaitlis absolūtā vērtībā tiek attēlots ar vieniniekiem visos ciparos, izņemot zīmi viens, t.i. veselam skaitlim

|A|maks. = (2 (n -1) - 1),

Kur n- bitu režģa kopējais garums. 16 bitu režģa gadījumā

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

tie. Veselo skaitļu attēlojuma diapazons šajā gadījumā būs no +3276710 līdz -3276710.

Gadījumam, kad komats ir fiksēts pa labi no mantisas zemās kārtas cipara, t.i. veseliem skaitļiem skaitļi, kuru modulis ir lielāks par

(2(n-1) - 1) un mazāk par vienu nav attēloti fiksētā punkta formā. Skaitļus, kuru absolūtā vērtība ir mazāka par vienu no vismazāk nozīmīgajiem bitu režģa cipariem, šajā gadījumā sauc par mašīnas nulli. Negatīvā nulle ir aizliegta.

Dažos gadījumos, kad iespējams darboties tikai ar skaitļu moduļiem, skaitļa attēlošanai tiek atvēlēts viss bitu režģis, ieskaitot nozīmīgāko bitu, kas ļauj paplašināt skaitļu attēlojuma diapazonu.

Binārā decimālo skaitļu sistēma

Binārā decimālo skaitļu sistēma ir kļuvusi plaši izplatīta mūsdienu datoros, pateicoties vienkāršai pārveidei par decimālo sistēmu un otrādi. To izmanto tur, kur galvenā uzmanība tiek pievērsta nevis mašīnas tehniskās konstrukcijas vienkāršībai, bet gan lietotāja ērtībām. Šajā skaitļu sistēmā visi decimālskaitļi tiek atsevišķi kodēti ar četriem bināriem cipariem un šādā formā tiek rakstīti secīgi viens pēc otra.

Binārā decimālā sistēma nav ekonomiska no mašīnas tehniskās konstrukcijas īstenošanas viedokļa (nepieciešamā iekārta palielinās par aptuveni 20%), taču tā ir ļoti ērta, gatavojot uzdevumus un programmējot. Binārajā decimālo skaitļu sistēmā skaitļu sistēmas bāze ir skaitlis 10, bet katrs decimālais cipars (0, 1, ..., 9) tiek attēlots, tas ir, kodēts, ar bināriem cipariem. Četri bināri cipari tiek izmantoti, lai attēlotu vienu decimālciparu. Šeit, protams, ir dublēšana, jo 4 bināri cipari (vai bināra tetrade) var attēlot nevis 10, bet 16 skaitļus, taču programmēšanas ērtībai tās jau ir ražošanas izmaksas. Ir vairākas bināri kodētas decimālās sistēmas skaitļu attēlošanai, kas raksturīgas ar to, ka noteiktām nulles un vieninieku kombinācijām vienā tetradā tiek piešķirtas noteiktas decimālo ciparu vērtības.
Ievietots ref.rf
Visbiežāk izmantotajā naturālajā bināro kodēto decimālo skaitļu sistēmā tetradē esošo bināro ciparu svari ir naturāli, tas ir, 8, 4, 2, 1 (6. tabula).

6. tabula

Binārā decimālzīme

Piemēram, decimālskaitlis 5673 BCD apzīmējumā ir 01010110011100011.

Skaitļu pārvēršana no vienas skaitļu sistēmas citā ir svarīga mašīnas aritmētikas daļa. Apskatīsim tulkošanas pamatnoteikumus.

1. Lai bināro skaitli pārvērstu par decimālskaitli, ir jāraksta ᴇᴦο kā polinoms, kas sastāv no skaitļa ciparu reizinājuma un atbilstošās 2 jaudas, un jāaprēķina saskaņā ar decimālskaitļa aritmētikas noteikumiem˸

Tulkojot ir ērti izmantot divu˸ pakāpju tabulu

7. tabula.

Skaitļa 2 pilnvaras

n (grāds)

Piemērs. Konvertējiet skaitli decimālskaitļu sistēmā.

2. Lai oktālo skaitli pārvērstu par decimālskaitli, ir jāraksta ᴇᴦο kā polinoms, kas sastāv no skaitļa ciparu reizinājumiem un skaitļa atbilstošās pakāpes 8, un jāaprēķina saskaņā ar decimālskaitli˸.

Tulkojot ir ērti izmantot astoņu˸ pakāpju tabulu

8. tabula.

Skaitļa 8 pilnvaras

n (grāds)
8n

Binārā decimālā skaitļu sistēma - jēdziens un veidi. Kategorijas "Binārā decimālā skaitļu sistēma" klasifikācija un pazīmes 2015, 2017-2018.

Šīs sistēmas bāze ir S = 10, bet katrs cipars ir attēlots ar četru bitu bināru skaitli, ko sauc par tetradu. Parasti šo numuru sistēmu izmanto datoros, ievadot un izvadot informāciju. Tomēr dažos datoru veidos ALU satur īpašus decimālos aritmētiskos blokus, kas veic darbības ar skaitļiem binārā decimālkodā. Tas dažos gadījumos ļauj ievērojami palielināt datora veiktspēju.

Piemēram, automatizētā datu apstrādes sistēmā ir daudz skaitļu, bet maz aprēķinu. Šajā gadījumā darbības, kas saistītas ar numuru pārsūtīšanu no vienas sistēmas uz otru, ievērojami pārsniegtu informācijas apstrādes darbību veikšanai nepieciešamo laiku.

Skaitļu pārvēršana no decimāldaļas uz BCD ir ļoti vienkārša un sastāv no katra cipara aizstāšanas ar bināro tetradu.

Piemērs.

Ierakstiet decimālo skaitli 572,38 (10) binārajā decimālo skaitļu sistēmā.

Arī apgrieztais tulkojums ir vienkāršs: jums ir jāsadala binārais decimālais skaitlis tetradēs no punkta pa kreisi (veselai daļai) un pa labi (daļējai daļai), jāpievieno nepieciešamais nenozīmīgo nulles skaits un pēc tam ierakstiet katru tetradu kā decimālciparu.

Piemērs.

Decimālo skaitļu sistēmā ierakstiet bināro decimālo skaitli 10010.010101 (2-10).

Skaitļu konvertēšana no BCD uz bināro sistēmu tiek veikta saskaņā ar iepriekš aprakstītajiem vispārīgajiem noteikumiem.

2.3. Oktālo skaitļu sistēma

Astotnieku skaitļu sistēmā tiek izmantoti tikai astoņi cipari, t.i. šai skaitļu sistēmai ir bāze S = 8. Kopumā oktālais skaitlis izskatās šādi:

Kur
.

Atšķirībā no binārās sistēmas, oktālo skaitļu sistēma datoram nav nepieciešama. Tas ir ērts kā kompakts skaitļu rakstīšanas veids, un to izmanto programmētāji (piemēram, programmu tekstos, lai kodolīgāk un ērtāk rakstītu komandu, adrešu un operandu bināros kodus). Astotnieku skaitļu sistēmā katra cipara svars ir astoņas vai vienas astotdaļas reizinātājs, tāpēc astoņu bitu binārs skaitlis ļauj izteikt decimālvērtības diapazonā no 0 līdz 255, un oktālais skaitlis aptver diapazonu 0 -99999999 (binārajam numuram tas ir 27 cipari).

Tā kā 8=2 3, katru oktālo rakstzīmi var attēlot kā trīs bitu bināru skaitli. Lai pārvērstu skaitli no binārās skaitļu sistēmas uz oktālo skaitļu sistēmu, šis skaitlis ir jāsadala pa kreisi (veselai daļai) un pa labi (daļējai daļai) no punkta (komats) grupās pa trim. cipari (triādes) un attēlo katru grupu ar skaitli oktālo skaitļu sistēmā. Ekstrēmās nepilnīgās triādes tiek papildinātas ar nepieciešamo nenozīmīgo nulles skaitu.

Piemērs.

Ierakstiet bināro skaitli 10101011111101 (2) oktālo skaitļu sistēmā.

Piemērs.

Ierakstiet bināro skaitli 1011.0101 (2) oktālo skaitļu sistēmā.

Pārvēršana no oktāla uz bināru tiek veikta, attēlojot katru oktālā skaitļa ciparu kā trīsciparu bināru skaitli (triādi).

2.4. Heksadecimālā skaitļu sistēma

Šīs skaitļu sistēmas bāze ir S = 16. Kopumā heksadecimālais skaitlis izskatās šādi:

Kur
.

Heksadecimālā skaitļu sistēma dod iespēju vēl īsāk uzrakstīt daudzbitu bināros skaitļus un papildus saīsināt 4 bitu binārā skaitļa apzīmējumu, t.i. knibināt, jo 16=2 4 . Heksadecimālā sistēma tiek izmantota arī programmu tekstos kodolīgākai un ērtākai bināro skaitļu ierakstīšanai.

Lai pārvērstu skaitli no binārās skaitļu sistēmas uz heksadecimālo, jums ir jāsadala šis skaitlis pa kreisi un pa labi no punkta tetradēs un jāattēlo katra tetrada ar ciparu heksadecimālajā skaitļu sistēmā.

Piemērs.

Ierakstiet bināro skaitli 10101011111101 (2) heksadecimālā veidā.

Piemērs.

Ierakstiet bināro skaitli 11101.01111 (2) heksadecimālā veidā.

Lai pārvērstu skaitli no heksadecimālās skaitļu sistēmas uz bināro skaitļu sistēmu, ir nepieciešams, gluži pretēji, katrs šī skaitļa cipars aizstāt ar tetradu.

Noslēgumā jāatzīmē, ka patvaļīgu skaitļu pārsūtīšanu no vienas skaitļu sistēmas uz citu var veikt saskaņā ar vispārīgajiem noteikumiem, kas aprakstīti sadaļā “Binārā skaitļu sistēma”. Tomēr praksē skaitļu tulkošana no decimālās sistēmas uz aplūkotajām skaitļu sistēmām un otrādi tiek veikta, izmantojot bināro skaitļu sistēmu.

Tāpat atcerieties, ka heksadecimālie un oktālie skaitļi ir tikai veids, kā attēlot lielos bināros skaitļus, ar kuriem procesors faktiski darbojas. Šajā gadījumā priekšroka dodama heksadecimālajai sistēmai, jo mūsdienu datoros procesori manipulē ar vārdiem, kuru garums ir 4, 8, 16, 32 vai 64 biti, t.i. vārdu garums ir reizināts ar 4. Oktālo skaitļu sistēmā priekšroka tiek dota vārdiem, kas ir 3 bitu reizinātāji, piemēram, vārdiem ar 12 bitu garumu (kā PDP-8 no DEC).