Adunarea, scăderea, înmulțirea și împărțirea în informatică. Aritmetică binară. Conversie în sistem de numere binar

Acasă \ Documentație \ Pentru profesor de informatică

Când utilizați materiale de pe acest site - iar plasarea unui banner este OBLIGATORIE!!!

Aritmetică binară

Numerele pe care suntem obișnuiți să le folosim se numesc zecimale, iar aritmetica pe care o folosim se numește și zecimală. Acest lucru se datorează faptului că fiecare număr poate fi compus dintr-un set de numere care conțin 10 caractere - numere - „0123456789”.

Matematica s-a dezvoltat în așa fel încât acest anumit set a devenit principalul, dar aritmetica zecimală nu este singura. Dacă luăm doar cinci cifre, atunci pe baza lor putem construi aritmetică cu cinci cifre și din șapte cifre - aritmetică cu șapte cifre. În domeniile de cunoștințe legate de tehnologia computerelor, aritmetica este adesea folosită în care numerele sunt formate din șaisprezece cifre; prin urmare, această aritmetică este numită hexazecimal. Pentru a înțelege ce este un număr în aritmetică non-zecimală, mai întâi aflăm ce este un număr în aritmetică zecimală.

Luați, de exemplu, numărul 246. Această notație înseamnă că există două sute, patru zeci și șase unități în număr. Prin urmare, putem scrie următoarea egalitate:

246 = 200 + 40 + 6 = 2 * 10 2 + 4 * 10 1 + 6 * 10 0

Aici, semnele egale separă trei moduri de a scrie același număr. A treia formă de notație este cea mai interesantă pentru noi acum: 2 * 10 2 + 4 * 10 1 + 6 * 10 0 . Este structurat astfel:

Numărul nostru are trei cifre. Cifra principală „2” este numărul 3. Deci este înmulțită cu 10 la a doua putere. Următoarea cifră „4” are un număr de serie de 2 și se înmulțește cu 10 în prima. Este deja clar că cifrele sunt înmulțite cu zece cu o putere mai mică decât numărul de serie al cifrei. După ce am înțeles cele de mai sus, putem scrie formula generală pentru reprezentarea unui număr zecimal. Să ni se dă un număr cu N cifre. Vom nota i-a cifră cu un i. Atunci numărul se poate scrie sub următoarea formă: a n a n-1 ....a 2 a 1 . Acesta este primul formular, iar al treilea formular de intrare va arăta astfel:

a n a n-1 ….a 2 a 1 = a n * 10 n-1 + a n-1 * 10 n-2 + …. + a 2 * 10 1 + a 1 * 10 0

unde un i este un caracter din setul „0123456789”

Rolul celor zece este foarte clar vizibil în această înregistrare. Zece este baza pentru formarea numerelor. Și, apropo, se numește „baza sistemului numeric”, iar sistemul de numere în sine este motivul pentru care este numit „zecimal”. Desigur, numărul zece nu are proprietăți speciale. Putem înlocui cu ușurință zece cu orice alt număr. De exemplu, un număr din sistemul numeric din cinci cifre poate fi scris astfel:

a n a n-1 ….a 2 a 1 = a n * 5 n-1 + a n-1 * 5 n-2 + …. + a 2 * 5 1 + a 1 * 5 0

unde un i este un caracter din setul „01234”

În general, înlocuim 10 cu orice alt număr și obținem un sistem de numere complet diferit și o aritmetică diferită. Cea mai simplă aritmetică se obține dacă 10 este înlocuit cu 2. Sistemul de numere rezultat se numește binar și numărul din acesta este definit după cum urmează:

a n a n-1 ….a 2 a 1 = a n * 2 n-1 + a n-1 * 2 n-2 + …. + a 2 * 2 1 + a 1 * 2 0

unde un i este un caracter din setul „01”

Acest sistem este cel mai simplu dintre toate posibil, deoarece în el orice număr este format numai din două cifre 0 și 1. Este clar că nu ar putea fi mai simplu. Exemple de numere binare: 10, 111, 101.

Întrebare foarte importantă. Un număr binar poate fi reprezentat ca număr zecimal și invers, poate fi reprezentat un număr zecimal ca număr binar.

Binar la zecimal. E foarte simplu. Metoda unei astfel de traduceri este dată de modul nostru de a scrie numerele. Să luăm, de exemplu, următorul număr binar 1011. Să-l extindem în puteri de doi. Obținem următoarele:

1011 = 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0

Să efectuăm toate acțiunile înregistrate și să obținem:

1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 = 8 + 0+ 2 + 1 = 11. Astfel, obținem că 1011 (binar) = 11 (zecimal). Un mic inconvenient al sistemului binar este imediat vizibil. Același număr, care este scris în sistemul zecimal cu o cifră în sistemul binar, necesită patru cifre pentru înregistrarea sa. Dar acesta este prețul simplității (nimic nu vine gratis). Dar sistemul binar oferă un câștig uriaș în operațiile aritmetice. Și vom vedea asta mai târziu.

Exprimați următoarele numere binare ca zecimală.

a) 10010 b) 11101 c) 1010 c) 1110 d) 100011 e) 1100111 f) 1001110

Adunarea numerelor binare.

Metoda de adăugare a coloanei este în general aceeași ca și pentru un număr zecimal. Adică, adăugarea se realizează pe biți, începând cu cifra cea mai puțin semnificativă. Dacă, la adăugarea a două cifre, SUMA este mai mare de nouă, atunci se scrie cifra = SUM - 10 și se adaugă TOTUL PARTEA (SUMA / 10) în cifra cea mai semnificativă. (Adăugați câteva numere într-o coloană, amintiți-vă cum se face acest lucru.) La fel și cu un număr binar. Adăugați unul câte unul, începând cu cea mai mică cifră. Dacă rezultatul este mai mare de 1, atunci se notează 1 și se adaugă 1 la cea mai semnificativă cifră (se spune „din partea de sus a capului meu”).

Să facem exemplul: 10011 + 10001.

Prima categorie: 1+1 = 2. Scriem 0 și 1 așa cum ne vine în minte.

A doua categorie: 1+0+1(unitate memorată) =2. Notăm 0 și 1, mi-a venit în minte.

A treia categorie: 0+0+1(unitate memorată) = 1. Scrieți 1.

A patra categorie 0+0=0. Scriem 0.

A cincea categorie 1+1=2. Notăm 0 și adăugăm 1 la a șasea cifră.

Să convertim toate cele trei numere în sistemul zecimal și să verificăm corectitudinea adunării.

10011 = 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16 + 2 + 1 =19

10001 = 1*2 4 + 0*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 16 + 1 = 17

100100 = 1*2 5 + 0*2 4 + 0*2 3 + 1*2 2 + 0*2 1 + 0*2 0 =32+4=36

17 + 19 = 36 egalitate corectă

Exemple de soluții independente:

a) 11001 +101 =

b) 11001 +11001 =

c) 1001 + 111 =

e) 10011 + 101 =

e) 11011 + 1111 =

e) 11111 + 10011 =

Cum se transformă un număr zecimal în binar. Următoarea operație este scăderea. Dar ne vom ocupa de această operație puțin mai târziu, iar acum vom lua în considerare metoda de conversie a unui număr zecimal în binar.

Pentru a converti un număr zecimal în binar, acesta trebuie extins la puteri de două. Dar dacă extinderea în puteri de zece este obținută imediat, atunci cum să se extindă în puteri de doi necesită puțină gândire. Mai întâi, să vedem cum să faceți acest lucru folosind metoda de selecție. Să luăm numărul zecimal 12.

Primul pas. 2 2 = 4, acest lucru nu este suficient. De asemenea, 2 3 = 8 nu este suficient, dar 2 4 = 16 este deja mult. Prin urmare, lăsăm 2 3 =8. 12 - 8 = 4. Acum trebuie să o reprezentați ca o putere a două 4.

Pasul doi. 4 = 2 2 .

Atunci numărul nostru este 12 = 2 3 + 2 2. Cea mai mare cifră are numărul 4, cel mai mare grad = 3, prin urmare, trebuie să existe termeni cu puteri de doi 1 și 0. Dar nu avem nevoie de ei, așa că pentru a scăpa de grade inutile și a lăsa pe cele necesare , scriem numărul astfel: 1*2 3 + 1* 2 2 +0*2 1 + 0*2 0 = 1100 - aceasta este reprezentarea binară a numărului 12. Este ușor de observat că fiecare putere succesivă este cea mai mare putere a doi, care este mai mică decât numărul descompus. Pentru a consolida metoda, să ne uităm la un alt exemplu. Numărul 23.

Pasul 1. Cea mai apropiată putere a doi este 2 4 = 16. 23 -16 = 7.

Pasul 2. Cea mai apropiată putere a două 2 2 = 4. 7 - 4 = 3

Pasul 3. Cea mai apropiată putere a două 2 1 = 2. 3 - 2 = 1

Pasul 4. Cea mai apropiată putere a două 2 0 =1 1 - 1 =0

Obținem următoarea expansiune: 1*2 4 + 0*2 3 +1*2 2 +1*2 1 +1*2 0

Și numărul nostru binar dorit este 10111

Metoda discutată mai sus rezolvă bine problema care i-a fost atribuită, dar există o metodă care este algoritmizată mult mai bine. Algoritmul pentru această metodă este scris mai jos:

Atâta timp cât NUMĂRUL este mai mare decât zero, procedați

NEXT DIGIT = restul NUMĂRULUI împărțit la 2

NUMĂR = parte întreagă a NUMĂRULUI împărțit la 2

Când acest algoritm își finalizează activitatea, secvența NEXT DIGITS calculată va reprezenta un număr binar. De exemplu, să lucrăm cu numărul 19.

NUMĂR de început al algoritmului = 19

CIFRA URMĂTOARE = ​​1

CIFRA URMĂTOARE = ​​1

URMĂTOAREA CIFRE = 0

URMĂTOAREA CIFRE = 0

CIFRA URMĂTOARE = ​​1

Deci, ca rezultat, avem următorul număr 10011. Rețineți că cele două metode discutate diferă în ordinea în care sunt obținute următoarele cifre. În prima metodă, prima cifră primită este cea mai semnificativă cifră a numărului binar, iar în a doua metodă, prima cifră primită este, dimpotrivă, cea mai puțin semnificativă.

Convertiți numere zecimale în binare în două moduri

a) 14 b) 29 c) 134 d) 158 f) 1190 g) 2019

Cum se transformă o fracție într-un număr zecimal.

Se știe că orice număr rațional poate fi reprezentat ca o zecimală și o fracție obișnuită. O fracție obișnuită, adică o fracție de forma A/B, poate fi regulată și improprie. O fracție se numește proprie dacă A<В и неправильной если А>ÎN.

Dacă un număr rațional este reprezentat de o fracție improprie, iar numărătorul fracției este împărțit la numitor la un întreg, atunci acest număr rațional este un număr întreg; în toate celelalte cazuri, apare o parte fracțională. Partea fracțională este adesea un număr foarte lung și chiar infinit (o fracție periodică infinită, de exemplu 20/6), așa că în cazul părții fracționale nu avem doar sarcina de a traduce o reprezentare în alta, ci de a traduce cu o o anumită precizie.

Regula exactității. Să presupunem că vi se oferă un număr zecimal care poate fi reprezentat ca o fracție zecimală cu o precizie de N cifre. Pentru ca numărul binar corespunzător să fie de aceeași precizie, este necesar să scrieți semnele M - în el, astfel încât

Acum să încercăm să obținem regula de traducere și mai întâi să ne uităm la exemplul 5.401

Soluţie:

Vom obține partea întreagă conform regulilor deja cunoscute de noi, și este egală cu numărul binar 101. Și vom extinde partea fracțională în puteri de 2.

Pasul 1: 2-2 = 0,25; 0,401 - 0,25 = 0,151. - acesta este restul.

Pasul 2: Acum trebuie să reprezentăm 0,151 ca o putere a doi. Să facem asta: 2 -3 = 0,125; 0,151 - 0,125 = 0,026

Astfel, partea fracțională inițială poate fi reprezentată ca 2 -2 +2 -3. Același lucru se poate scrie în acest număr binar: 0,011. Prima cifră fracțională este zero, deoarece în expansiunea noastră nu există o putere de 2 -1.

Din primul și al doilea pas este clar că această reprezentare nu este exactă și poate fi de dorit să se continue expansiunea. Să ne uităm la regulă. Se spune că avem nevoie de atât de multe semne ale lui M încât 10 3 este mai mic de 2 M. Adică 1000<2 M . То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как 2 9 = 512 и только 2 10 = 1024. Продолжим процесс.

Pasul 3: Acum lucrăm cu numărul 0.026. Cea mai apropiată putere a doi de acest număr este 2 -6 = 0,015625; 0,026 - 0,015625 = 0,010375 Acum numărul nostru binar mai precis este: 0,011001. Există deja șase locuri după virgulă, dar acest lucru nu este încă suficient, așa că mai facem un pas.

Pasul 4: Acum lucrăm cu numărul 0.010375. Cea mai apropiată putere a doi de acest număr este 2 -7 = 0,0078125;

0,010375 - 0,0078125 = 0,0025625

Pasul 5: Acum lucrăm cu numărul 0.0025625. Cea mai apropiată putere a doi de acest număr este 2 -9 = 0,001953125;

0,0025625 - 0,001953125 = 0,000609375

Ultimul rest rezultat este mai mic de 2 -10 și dacă am dori să continuăm aproximarea numărului inițial, am avea nevoie de 2 -11, dar aceasta depășește deja precizia necesară și, prin urmare, calculele pot fi oprite și reprezentarea binară finală a partea fracționată poate fi scrisă.

0,401 = 0,011001101

După cum puteți vedea, conversia părții fracționale a unui număr zecimal în binar este puțin mai complicată decât conversia părții întregi. Tabelul puterilor a doi la sfârșitul prelegerii.

Acum să scriem algoritmul de conversie:

Datele inițiale ale algoritmului: Prin A vom nota fracția zecimală proprie originală scrisă sub formă zecimală. Fie ca această fracție să conțină N caractere.

Algoritm

Acțiunea 1. Determinați numărul de cifre binare necesare M din inegalitatea 10 N< 2 M

Acțiunea 2: Ciclu pentru calcularea cifrelor reprezentării binare (cifre după zero). Numărul cifrei va fi notat cu simbolul K.

  1. Numărul cifrei = 1
  2. Dacă 2 -K > A

Apoi adăugăm zero la numărul binar

    • adăugați 1 la numărul binar
    • A = A - 2 -K
  1. K = K + 1
  2. Dacă K > M
  • atunci algoritmul este finalizat
  • În caz contrar, treceți la punctul 2.

Convertiți numere zecimale în binare

a) 3,6 b) 12,0112 c) 0,231 d) 0,121 d) 23,0091

Scăderea numerelor binare. Vom scădea și numere într-o coloană și regula generală este aceeași ca pentru numerele zecimale, scăderea se face bit cu bit și dacă nu este suficientă în loc, atunci se face în cea mai mare. Să rezolvăm următorul exemplu:

Prima categorie. 1 - 0 =1. Notam 1.

A doua categorie 0 -1. Unul lipsește. O ocupăm la categoria seniori. O unitate dintr-o cifră senior trece într-una junior, ca două unități (deoarece cifra senior este reprezentată de un doi de grad superior) 2-1 = 1. Notam 1.

A treia categorie. Am ocupat o unitate de acest rang, așa că acum în rangul 0 este nevoie să ocupăm o unitate de cel mai înalt rang. 2-1 =1. Notam 1.

Să verificăm rezultatul în sistemul zecimal

1101 - 110 = 13 - 6 = 7 (111) Egalitatea corectă.

Un alt mod interesant de a efectua scăderea implică conceptul de cod de complement a doi, care vă permite să reduceți scăderea la adunare. Rezultatul unui număr în codul de complement a doi este extrem de simplu: luăm numărul, înlocuim zerourile cu unu, dimpotrivă, înlocuim cele cu zerouri și adăugăm unul la cifra cea mai puțin semnificativă. De exemplu, 10010, codul suplimentar va fi 011011.

Regula scăderii prin complement a doi prevede că scăderea poate fi înlocuită cu adunare dacă subtrahendul este înlocuit cu un număr din complementul a doi.

Exemplu: 34 - 22 = 12

Să scriem acest exemplu în formă binară. 100010 - 10110 = 1100

Codul suplimentar al numărului 10110 va fi așa

01001 + 00001 = 01010. Apoi, exemplul original poate fi înlocuit prin adăugare astfel: 100010 + 01010 = 101100 Apoi, trebuie să aruncați o unitate din cifra cea mai semnificativă. Dacă facem asta, obținem 001100. Să aruncăm zerouri nesemnificative și să obținem 1100, adică exemplul a fost rezolvat corect

Efectuați scăderi. În mod obișnuit și în cod suplimentar, având convertit anterior numere zecimale în binare:

Verificați prin conversia rezultatului binar în sistemul numeric zecimal.

Înmulțirea în sistemul de numere binar.

În primul rând, luați în considerare următorul fapt interesant. Pentru a înmulți un număr binar cu 2 (zecimalul doi este 10 în sistemul binar), este suficient să adăugați un zero la stânga numărului înmulțit.

Exemplu. 10101 * 10 = 101010

Examinare.

10101 = 1*2 4 + 0*2 3 + 1*2 2 + 0*2 1 +1*2 0 = 16 + 4 + 1 = 21

101010 =1*2 5 + 0*2 4 + 1*2 3 + 0*2 2 +1*2 1 +0*2 0 = 32 + 8 + 2 = 42

Dacă ne amintim că orice număr binar poate fi extins în puteri de doi, atunci devine clar că înmulțirea în sistemul numeric binar se reduce la înmulțirea cu 10 (adică cu zecimala 2), și, prin urmare, înmulțirea este o serie de succesive. schimburi. Regula generală este că, la fel ca în cazul numerelor zecimale, înmulțirea binară se realizează pe biți. Și pentru fiecare cifră a celui de-al doilea multiplicator, se adaugă un zero la dreapta primului multiplicator. Exemplu (nu este încă într-o coloană):

1011 * 101 Această înmulțire poate fi redusă la suma a trei cifre:

1011 * 1 + 1011 * 0 + 1011 * 100 = 1011 +101100 = 110111 Același lucru poate fi scris într-o coloană astfel:

Examinare:

101 = 5 (zecimală)

1011 = 11 (zecimală)

110111 = 55 (zecimală)

5*11 = 55 egalitate corectă

Decide pentru tine

a) 1101 * 1110 =

b) 1010 * 110 =

e) 101011 * 1101 =

e) 10010 * 1001 =

Notă: Apropo, tabelul înmulțirii din sistemul binar constă dintr-un singur element 1 * 1 = 1

Împărțirea în sistemul de numere binar.

Am analizat deja trei acțiuni și cred că este deja clar că, în general, acțiunile asupra numerelor binare diferă puțin de acțiunile asupra numerelor zecimale. Singura diferență este că există două numere și nu zece, dar asta simplifică doar operațiile aritmetice. Situația este aceeași cu diviziunea, dar pentru o mai bună înțelegere, vom analiza mai detaliat algoritmul de împărțire. Să presupunem că trebuie să împărțim două numere zecimale, de exemplu 234 împărțit la 7. Cum facem acest lucru.

Selectăm în dreapta (din cea mai semnificativă cifră) un astfel de număr de cifre încât numărul rezultat să fie cât mai mic și în același timp mai mare decât divizorul. 2 este mai mic decât divizorul, prin urmare numărul de care avem nevoie este 23. Apoi împărțim numărul rezultat la divizorul cu rest. Obtinem urmatorul rezultat:

Repetăm ​​operația descrisă până când restul rezultat este mai mic decât divizorul. Când se întâmplă acest lucru, numărul obținut sub linie este coeficientul, iar ultimul rest este restul operației. Deci operația de împărțire a unui număr binar se realizează exact în același mod. Sa incercam

Exemplu: 10010111 / 101

Căutăm un număr a cărui primă cifră este mai mare decât divizorul. Acesta este numărul din patru cifre 1001. Este îngroșat. Acum trebuie să găsiți un divizor pentru numărul selectat. Și aici câștigăm din nou în comparație cu sistemul zecimal. Faptul este că divizorul selectat este în mod necesar un număr și avem doar două numere. Deoarece 1001 este în mod clar mai mare decât 101, atunci totul este clar cu divizor: 1. Să efectuăm pasul operației.

Deci, restul operației finalizate este 100. Acesta este mai mic decât 101, deci pentru a efectua al doilea pas de divizare, trebuie să adăugați următoarea cifră la 100, aceasta este cifra 0. Acum avem următorul număr:

1000 este mai mare decât 101, așa că în al doilea pas vom adăuga din nou numărul 1 la cât și vom obține următorul rezultat (pentru a economisi spațiu, vom omite imediat următoarea cifră).

Al treilea pas. Numărul rezultat 110 este mai mare decât 101, așa că la acest pas vom scrie 1 în coeficient. Se va dovedi astfel:

Numărul rezultat 11 este mai mic decât 101, așa că scriem numărul 0 în coeficient și coborâm următorul număr. Se dovedește așa:

Numărul rezultat este mai mare decât 101, așa că scriem numărul 1 în coeficient și efectuăm din nou acțiunile. Rezultă această poză:

1

0

Restul rezultat 10 este mai mic decât 101, dar am rămas fără cifre în dividend, deci 10 este restul final, iar 1110 este coeficientul necesar.

Să verificăm numerele zecimale

Aceasta încheie descrierea celor mai simple operații aritmetice pe care trebuie să le cunoașteți pentru a utiliza aritmetica binară, iar acum vom încerca să răspundem la întrebarea „De ce este necesară aritmetica binară?” Desigur, s-a arătat deja mai sus că scrierea unui număr în sistemul binar simplifică semnificativ operațiile aritmetice, dar în același timp înregistrarea în sine devine mult mai lungă, ceea ce reduce valoarea simplificării rezultate, deci este necesar să se caute probleme a căror rezolvare este mult mai simplă în numere binare.

Sarcina 1: Preluarea tuturor mostrelor

Foarte des apar probleme în care trebuie să fiți capabil să construiți toate combinațiile posibile dintr-un set dat de obiecte. De exemplu, această sarcină:

Având în vedere un morman mare de pietre, aranjați pietrele în două grămezi astfel încât masa acestor două grămezi să fie cât mai egală posibil.

Această sarcină poate fi formulată după cum urmează:

Găsiți o selecție de pietre dintr-o grămadă mare, astfel încât masa sa totală să difere cât mai puțin posibil de jumătate din masa grămezii mari.

Există destul de multe sarcini de acest fel. Și toate se reduc, așa cum s-a spus deja, la capacitatea de a obține toate combinațiile posibile (în continuare le vom numi mostre) dintr-un set dat de elemente. Și acum ne vom uita la metoda generală de obținere a tuturor probelor posibile folosind operația de adăugare binară. Să începem cu un exemplu. Să fie un set de trei obiecte. Să construim toate probele posibile. Vom desemna obiectele prin numere de serie. Adică, există următoarele elemente: 1, 2, 3.

Mostre: (0, 0, 1); (0, 1, 0); (0, 1, 1); (100); (1, 0, 1); (1, 1, 0); (1, 1, 1);

Dacă poziția cu următorul număr este unu, atunci aceasta înseamnă că un element cu un număr egal cu această poziție este prezent în selecție, iar dacă există un zero, atunci elementul nu este prezent. De exemplu, eșantion (0, 1, 0); constă dintr-un element cu numărul 2, iar selecția este (1, 1, 0); este format din două elemente cu numerele 1 și 2.

Acest exemplu arată clar că un eșantion poate fi reprezentat ca un număr binar. În plus, este ușor de observat că toate numerele binare posibile de una, două și trei cifre sunt scrise mai sus. Să le rescriem după cum urmează:

001; 010; 011; 100; 101; 110; 111

1; 10; 11; 100; 101; 110; 111

Am primit o serie de numere binare consecutive, fiecare dintre ele obținute de la precedentul prin adăugarea unuia. Puteți verifica acest lucru. Folosind acest model observat, putem construi următorul algoritm pentru obținerea de eșantioane.

Date de intrare ale algoritmului

Dat un set de obiecte N - piese. În cele ce urmează vom numi această mulţime mulţimea elementelor iniţiale. Să numerotăm toate elementele mulțimii inițiale de la 1 la N. Să facem un număr binar din N zerouri nesemnificative. 0000… 0 N Acest număr binar zero va indica proba zero cu care va începe procesul de eșantionare. Cifrele unui număr sunt numărate de la dreapta la stânga, adică cifra din stânga este cea mai semnificativă.

Să fim de acord să notăm acest număr binar cu majuscule BINAR

Algoritm

Dacă un număr BINAR este format în întregime din unii

Apoi oprim algoritmul

    • Adăugăm unul la un număr BINAR conform regulilor aritmeticii binare.
    • Din numărul BINAR rezultat facem următorul eșantion, așa cum este descris mai sus.

Problema 2: Găsirea numerelor prime mari

Pentru început, să ne amintim că un număr prim este un număr natural care este divizibil doar cu 1 și cu el însuși. Exemple de numere prime: 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31

Găsirea numerelor prime mari este o problemă matematică foarte importantă. Numerele prime mari sunt necesare pentru unii algoritmi de criptare pentru a cripta în siguranță mesajele. Mai mult, nu este nevoie doar de un număr mare, ci și de unul foarte mare. Cu cât numărul este mai mare, cu atât este mai fiabil cifrul construit pe acest număr.

Notă. Un cifr puternic este un cifr care durează foarte mult timp pentru a descifra.

De ce? Un număr prim acționează ca o cheie pentru criptare și decriptare. În plus, știm că numerele prime nu apar foarte des în seria numerelor naturale. Sunt destul de mulți printre primele mii, apoi numărul lor începe să scadă rapid. Prin urmare, dacă luăm ca cheie un număr nu foarte mare, descifratorul, folosind chiar și un computer nu foarte rapid, va putea ajunge la el (încercând toate numerele simple unul după altul ca cheie) într-un mod limitat. timp.

Un cod destul de fiabil poate fi obținut dacă luați unul simplu, de exemplu 150 de caractere. Cu toate acestea, găsirea unuia atât de simplu nu este atât de ușoară. Să presupunem că un anumit număr A (foarte mare) trebuie verificat pentru primalitate. Aceasta este la fel cu căutarea divizorilor săi. Dacă putem găsi divizori în intervalul de la 2 la rădăcina pătrată a lui A, atunci nu este prim. Să estimăm numărul de numere care trebuie testate pentru capacitatea de a împărți numărul A.

Să presupunem că numărul A are 150 de cifre. Rădăcina pătrată a acesteia va conține cel puțin 75 de caractere. Pentru a sorta un astfel de număr de posibili divizori, avem nevoie de un computer foarte puternic și de mult timp, ceea ce înseamnă că problema este practic de nerezolvat.

Cum să te descurci cu asta.

În primul rând, puteți învăța să verificați rapid divizibilitatea unui număr cu altul și, în al doilea rând, puteți încerca să selectați numărul A în așa fel încât să fie prim cu un grad ridicat de probabilitate. Se pare că acest lucru este posibil. Matematicianul Mersen a descoperit că numere de următoarea formă

Sunt simple, cu un grad ridicat de probabilitate.

Pentru a înțelege expresia scrisă mai sus, să numărăm câte numere prime sunt în prima mie și câte numere Mersen sunt prime în aceeași mie. Deci, numerele Mersen din prima mie sunt după cum urmează:

2 1 - 1 = 1 ; 2 2 -1 = 3 ; 2 3 - 1 = 7 ; 2 4 - 1 = 15; 2 5 - 1 = 31 ; 2 6 -1 = 63;

2 7 - 1 =127 ; 2 8 -1 = 255; 2 9 - 1 = 511;

Numerele prime sunt marcate cu caractere aldine. Există 5 numere prime pentru 9 numere Mersen. Ca procent, acesta este 5/9*100 = 55,6%. În același timp, pentru fiecare 1000 de primele numere naturale, există doar 169 de numere prime. Ca procent, acesta este 169/1000*100 = 16,9%. Adică, în prima mie, în termeni procentuali, numerele prime dintre numerele Mersen se găsesc de aproape 4 ori mai des decât printre numerele naturale simple.

___________________________________________________________

Acum să luăm un anumit număr Mersen, de exemplu 2 4 - 1. Să-l scriem ca număr binar.

2 4 - 1 = 10000 - 1 = 1111

Să luăm următorul număr Mersen 2 5 -1 și să îl scriem ca număr binar. Obținem următoarele:

2 5 -1 = 100000 - 1 = 11111

Este deja clar că toate numerele Mersen sunt o succesiune de unități și acest fapt în sine dă un câștig mare. În primul rând, în sistemul de numere binar este foarte simplu să obțineți următorul număr Mersen, doar adăugați unul la următorul număr, iar în al doilea rând, căutarea divizorilor în sistemul binar este mult mai ușoară decât în ​​sistemul zecimal.

Conversie rapidă zecimală în binar

Una dintre principalele probleme legate de utilizarea sistemului de numere binar este dificultatea de a converti un număr zecimal în binar. Aceasta este o sarcină destul de intensivă în muncă. Desigur, nu este prea dificil să traduci numere mici de trei sau patru cifre, dar pentru numere zecimale cu 5 sau mai multe cifre acest lucru este deja dificil. Adică, avem nevoie de o modalitate de a converti rapid numere zecimale mari în binar.

Această metodă a fost inventată de matematicianul francez Legendre. Să fie dat, de exemplu, numărul 11183445. Îl împărțim la 64, obținem un rest de 21 și coeficientul este 174741. Împărțim acest număr din nou la 64, obținem un rest de 21 și un coeficient de 2730. În final , 2730 împărțit la 64 dă un rest de 42 și un coeficient de 42 Dar 64 în binar este 1000000, 21 în binar este 10101 și 42 este 101010. Prin urmare, numărul original este scris în binar după cum urmează:

101010 101010 010101 010101

Pentru a fi mai clar, iată un alt exemplu cu un număr mai mic. Să convertim reprezentarea binară a numărului 235. Împărțim 235 la 64 cu un rest. Primim:

CANTITATE = 3, binar 11 sau 000011

RĂMÂNU = 43, binar 101011

Atunci 235 = 11101011. Să verificăm acest rezultat:

11101011 = 2 7 + 2 6 + 2 5 + 2 3 + 2 1 + 2 0 = 128+64+32+8+2+1 = 235

Note:

  1. Este ușor de observat că numărul binar final include toate resturile și, la ultimul pas, atât restul, cât și câtul.
  2. Coeficientul se scrie înaintea restului.
  3. Dacă câtul sau restul rezultat are mai puțin de 6 cifre în reprezentare binară (6 zerouri conțin reprezentarea binară a numărului 64 = 1000000), atunci i se adaugă zerouri nesemnificative.

Și încă un exemplu complex. Numărul este 25678425.

Pasul 1: 25678425 împărțit la 64

Privat = 401225

Rămâne = 25 = 011001

Pasul 2: 401225 împărțit la 64

Coeficient = 6269

Rest = 9 = 001001

Pasul 3: 6269 împărțit la 64

coeficient = 97

Rămâne = 61 = 111101

Pasul 4: 97 împărțit la 64

Coeficient = 1 = 000001

Rămâne = 33 = 100001

Rezultat număr = 1,100001,111101,001001,011001

În acest număr, rezultatele intermediare incluse în el sunt separate printr-un punct.

Convertiți numerele în reprezentare binară:

ANEXĂ: TABEL 1

0,015625

0,0078125

0,00390625

0,001953125

0,0009765625

0,00048828125

0,000244140625

0,0001220703125

0,00006103515625

0,000030517578125

0,0000152587890625

0,00000762939453125

0,000003814697265625

0,0000019073486328125

0,00000095367431640625

0,000000476837158203125

Secțiuni: Informatică

Ţintă: învață elevii să efectueze operații aritmetice în sistemul numeric binar .
Sarcini:
educational:
- repetarea și consolidarea cunoștințelor elevilor despre sistemele de numere;
- să dezvolte la şcolari capacitatea de a efectua corect operaţii aritmetice în sistemul de numere binar;
în curs de dezvoltare:
- dezvoltarea gândirii logice a elevilor;
- dezvoltarea interesului cognitiv al elevilor.

În timpul orelor.

Învățarea de materiale noi.
Reguli de adăugare:
0+0=0
0+1=1
1+0=1
1+1=10
Atrageți atenția elevilor asupra faptului că atunci când adăugați două unități în sistemul de numere binar, rezultatul este 0, iar unitatea este transferată la următoarea cifră. Când adăugați trei unități, rezultatul este 1 în intrare, iar unitatea este transferată la următoarea cifră. (1+1+1=11).

Exemplul 1.
101+10=111

Exemplul 2.
10011+11=1110


1001+11=1100
110+110=1100

Reguli de multiplicare:
0*0=0
0*1=0
1*0=0
1*1=1

Exemplul 1.
101*11=1111

Explicaţie:
Înmulțim fiecare cifră a celui de-al doilea factor cu fiecare cifră a primului factor, rezultatele produselor se adună conform regulilor de adunare în sistemul de numere binar. (Matematică – clasa a III-a).

Exemplul 2.
1011*101=110111

Soluţie:

Elevii rezolvă următoarele exemple în mod independent:
1001*101=101101
1001*11=11011

Reguli de scădere:
0-0=0
1-0=1
1-1=0
0-1=-1
Atrageți atenția elevilor asupra faptului că „minus” din ultima regulă înseamnă „a lua rangul (1).”

Exemplul 1.
10110-111=1111

Explicaţie:
Scăderea se face la fel ca la matematică. Dacă cifra din minuend este mai mică decât cifra subtraendului, atunci pentru această scădere este necesar să se ocupe cifra (1), deoarece 10-1=1. Dacă există un 0 la stânga unei astfel de scăderi, atunci nu putem ocupa un rang. În acest caz, ocupăm cifra în minuendul unității cel mai apropiat de stânga scăderii date. În acest caz, toate zerourile din care nu am putut ocupa o cifră trebuie schimbate în unu, deoarece 0-1=-1. Este recomandabil să notați toate modificările numerelor peste această scădere. Efectuați o scădere suplimentară cu numerele rezultate de mai sus.

Exemplul 2.
100000-11=11101

Elevii rezolvă următoarele exemple în mod independent:
100010-100=
101011-10111=

Regula diviziunii:
Împărțirea se face după regulile matematicii, fără a uita că efectuăm operații în sistemul numeric binar.

Exemplul 1.
101101:1001=101

Explicaţie:
În coeficient, nu ezitați să scrieți primul 1, pentru că un număr din sistemul binar nu poate începe cu 0. Înmulțim acest 1 cu divizor și scriem rezultatul corect sub dividend, observând adâncimea de biți. Efectuăm scăderea conform regulilor de scădere în sistemul numeric binar. Luăm următoarea cifră a dividendului și comparăm numărul rezultat cu divizorul. În acest caz, numărul rezultat este mai mic decât divizorul; în coeficient scriem 0 (în caz contrar, 1). Luăm următoarea cifră a dividendului. Obținem un număr egal cu divizorul, scriem 1 în coeficient etc.

Exemplul 2.
101010:111=110

Exemple de soluții independente:
1001000:1000=1001
111100:1010=110

Teme pentru acasă.
Urmați acești pași:
1100+1101=
101+101=
1011*101=
111*101=
11011-110=
10001-1110=
1011010:1010=

Operații aritmetice în sisteme numerice poziționale

Să aruncăm o privire mai atentă la operațiile aritmetice din sistemul de numere binar. Aritmetica sistemului de numere binare se bazează pe utilizarea tabelelor pentru adunarea, scăderea și înmulțirea cifrelor. Operanzii aritmetici sunt localizați în rândul de sus și prima coloană a tabelelor, iar rezultatele sunt la intersecția coloanelor și rândurilor:

Să ne uităm la fiecare operație în detaliu.

Plus. Tabelul de adunare binară este extrem de simplu. Doar într-un caz când se efectuează adăugarea 1+1, are loc un transfer la cifra cea mai semnificativă. ,

Scădere. La efectuarea unei operații de scădere, numărul mai mic este întotdeauna scăzut din numărul mai mare în valoare absolută și se pune semnul corespunzător. În tabelul de scădere, un 1 cu bară înseamnă un împrumut la cel mai înalt rang.

Multiplicare. Operația de înmulțire se realizează cu ajutorul unei tabele de înmulțire conform schemei uzuale utilizate în sistemul numeric zecimal cu înmulțirea secvențială a multiplicandului cu următoarea cifră a multiplicatorului.

Divizia. Operația de împărțire se realizează folosind un algoritm similar cu algoritmul pentru efectuarea operației de împărțire în sistemul numeric zecimal.

Sarcini de determinare a valorilor în diverse sisteme numerice și bazele acestora

Exercitiul 1. Pentru a codifica caracterele @, $, &, %, sunt folosite numere binare secvenţiale din două cifre. Primul caracter corespunde numărului 00. Folosind aceste caractere, a fost codificată următoarea secvență: $%&&@$. Decodificați această secvență și convertiți rezultatul într-un sistem numeric hexazecimal.

Soluţie.

1. Să comparăm numerele binare cu caracterele pe care le codifică:
00 — @, 01 — $, 10 — &, 11 — %

3. Convertiți numărul binar în sistemul numeric hexazecimal:
0111 1010 0001 = 7A1

Răspuns. 7A1 16.

Sarcina 2. Grădina are 100 x pomi fructiferi, dintre care 33 x meri, 22 x...
– pere, 16 x – prune, 17 x – cireșe. Care este baza sistemului numeric (x).

Soluţie.

1. Rețineți că toți termenii sunt numere din două cifre. În orice sistem numeric ele pot fi reprezentate după cum urmează:
a * x 1 + b * x 0 = ax + b, unde a și b sunt cifrele cifrelor corespunzătoare numărului.
Pentru un număr din trei cifre ar fi așa:
a * x 2 + b * x 1 + c * x 0 = ax 2 + bx + c

2. Starea problemei este:
33 x + 22 x + 16 x + 17 x = 100 x
Să înlocuim numerele în formule:
3x + 3 + 2x +2 + 1x + 6 + 1x + 7 = 1x 2 + 0x + 0
7x + 18 = x 2

3. Rezolvați ecuația pătratică:
-x2 + 7x + 18 = 0
D = 7 2 – 4 * (-1) * 18 = 49 + 72 = 121. Rădăcina pătrată a lui D este 11.
Rădăcinile unei ecuații pătratice:
x = (-7 + 11) / (2 * (-1)) = -2 sau x = (-7 - 11) / (2 * (-1)) = 9

4. Un număr negativ nu poate fi baza unui sistem numeric. Prin urmare, x poate fi doar egal cu 9.

Răspuns. Baza necesară a sistemului numeric este 9.

Sarcina 3.Într-un sistem numeric cu o anumită bază, numărul zecimal 12 este scris ca 110. Găsiți această bază.

Soluţie.

În primul rând, vom scrie numărul 110 prin formula de scriere a numerelor în sisteme numerice poziționale pentru a găsi valoarea în sistemul numeric zecimal, iar apoi vom găsi baza prin forță brută.

110 = 1 * x 2 + 1 * x 1 + 0 * x 0 = x 2 + x

Trebuie să obținem 12. Să încercăm 2: 2 2 + 2 = 6. Încercați 3: 3 2 + 3 = 12.

Aceasta înseamnă că baza sistemului numeric este 3.

Răspuns. Baza necesară a sistemului numeric este 3.

Sisteme de numere hexazecimale și octale

Exercitiul 1. Ce număr din sistemul numeric hexazecimal îi corespunde numărului 11000101?

Soluţie.

Când convertiți un număr binar în hexazecimal, primul este împărțit în grupuri de patru cifre, începând de la sfârșit. Dacă numărul de cifre nu este divizibil cu patru, atunci primele patru sunt precedate de zerouri. Fiecare patru are o corespondență unică cu o cifră din sistemul numeric hexazecimal.

11000101 = 1100 0101 = C5 16

Nu este nevoie să aveți o masă de corespondență în fața ochilor. Numărarea binară a primelor 15 numere poate fi făcută în cap sau scrisă secvențial. Nu trebuie uitat că 10 în sistemul zecimal îi corespunde lui A în hexazecimal, 11 - B, 12 - C, 13 - D, 14 - E, 15 - F.

Răspuns. 11000101 = C5 16

Sarcina 2. Calculați suma numerelor binare x și y, cu x = 10100 și y = 10101. Exprimați rezultatele ca număr octal.

Soluţie.

Să adunăm două numere. Regulile aritmeticii binare și zecimale sunt aceleași:

Când convertiți un număr binar în octal, primul este împărțit în grupuri de trei cifre, începând de la sfârșit. Dacă numărul de cifre nu este divizibil cu trei, atunci primele trei sunt precedate de zerouri:

Răspuns. Suma numerelor binare 10100 și 10101, reprezentate în sistemul de numere octale, este 51.

Conversie în sistem de numere binar

Exercitiul 1. Care este numărul 37 în binar?

Soluţie.

Puteți converti prin împărțirea la 2 și combinând resturile în ordine inversă.

O altă modalitate este de a descompune numărul în suma puterilor a doi, începând cu cel mai mare, al cărui rezultat calculat este mai mic decât numărul dat. La conversie, puterile lipsă ale unui număr trebuie înlocuite cu zerouri:

37 10 = 32 + 4 + 1 = 2 5 + 2 2 + 2 0 = 1 * 2 5 + 0 * 2 4 + 0 * 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 100101

Răspuns. 37 10 = 100101 2 .

Sarcina 2. Câte zerouri semnificative există în notația binară a numărului zecimal 73?

Soluţie.

Să descompunăm numărul 73 în suma puterilor a două, începând cu cea mai mare și ulterior înmulțind puterile lipsă cu zerouri și puterile existente cu una:

73 10 = 64 + 8 + 1 = 2 6 + 2 3 + 2 0 = 1 * 2 6 + 0 * 2 5 + 0 * 2 4 + 1 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 1001001

Răspuns. Reprezentarea binară a numărului zecimal 73 are patru zerouri semnificative.

Sarcina 3. Calculați suma numerelor x și y pentru x = D2 16, y = 37 8. Prezentați rezultatul în sistemul de numere binar.

Soluţie.

Amintiți-vă că fiecare cifră a unui număr hexazecimal este formată din patru cifre binare, fiecare cifră a unui număr octal din trei:

D2 16 = 1101 0010
37 8 = 011 111

Să adunăm numerele rezultate:

Răspuns. Suma numerelor D2 16 și y = 37 8, reprezentate în sistemul de numere binar, este 11110001.

Sarcina 4. Dat: A= D7 16, b= 331 8 . Care număr c, scris în sistemul de numere binar, îndeplinește condiția A< c < b ?

  1. 11011001
  2. 11011100
  3. 11010111
  4. 11011000

Soluţie.

Să convertim numerele în sistemul de numere binar:

D7 16 = 11010111
331 8 = 11011001

Primele patru cifre ale tuturor numerelor sunt aceleași (1101). Prin urmare, comparația este simplificată prin compararea celor patru cifre inferioare.

Primul număr din listă este egal cu numărul b, prin urmare, nu este potrivit.

Al doilea număr este mai mare decât b. Al treilea număr este A.

Doar al patrulea număr este potrivit: 0111< 1000 < 1001.

Răspuns. A patra opțiune (11011000) îndeplinește condiția A< c < b .

Conversia la sistemul numeric zecimal

Exercitiul 1. Cărui număr îi corespunde 24 16 în sistemul zecimal?

Soluţie.

24 16 = 2 * 16 1 + 4 * 16 0 = 32 + 4 = 36

Răspuns. 24 16 = 36 10

Sarcina 2. Se știe că X = 12 4 + 4 5 + 101 2. Care este valoarea lui X în sistemul numeric zecimal?

Soluţie.


12 4 = 1 * 4 1 + 2 * 4 0 = 4 + 2 = 6
4 5 = 4 * 5 0 = 4
101 2 = 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 4 + 0 + 1 = 5
Aflați numărul: X = 6 + 4 + 5 = 15

Răspuns. X = 15 10

Sarcina 3. Calculați valoarea sumei 10 2 + 45 8 + 10 16 în notație zecimală.

Soluţie.

Să convertim fiecare termen în sistemul numeric zecimal:
10 2 = 1 * 2 1 + 0 * 2 0 = 2
45 8 = 4 * 8 1 + 5 * 8 0 = 37
10 16 = 1 * 16 1 + 0 * 16 0 = 16
Suma este: 2 + 37 + 16 = 55

Răspuns. 55 10

Operații aritmetice în sistemul numeric binar

Sisteme numerice

Numărul subiectului:

În sistemul numeric binar, operațiile aritmetice sunt efectuate după aceleași reguli ca și în sistemul numeric zecimal, deoarece ambele sunt poziționale (împreună cu octal, hexazecimal etc.).

Plus

Adunarea numerelor binare cu o singură cifră se efectuează conform următoarelor reguli:

În acest ultim caz, la adăugarea a două, cifra de ordin inferioară depășește și 1 este transferată la cifra de ordin superior. Depășirea are loc dacă suma este egală cu baza sistemului numeric (în acest caz este numărul 2) sau mai mare decât aceasta (pentru sistemul numeric binar acest lucru nu este relevant).

De exemplu, să adăugăm oricare două numere binare:

Scădere

Scăderea numerelor binare cu o singură cifră se efectuează conform următoarelor reguli:

0 - 1 = (împrumut de la rang înalt) 1

Multiplicare

Înmulțirea numerelor binare cu o singură cifră se efectuează conform următoarelor reguli:

Divizia

Împărțirea se face în același mod ca și în sistemul numeric zecimal:

Scopul serviciului. Calculatorul online este conceput pentru a adăuga numere binare în codurile înainte, inversă și complementară.

Următoarele sunt, de asemenea, utilizate cu acest calculator:
Conversia numerelor în sisteme de numere binare, hexazecimale, zecimale, octale
Înmulțirea numerelor binare
Format virgulă mobilă
Exemplul nr. 1. Reprezentați numărul 133,54 sub formă de virgulă mobilă.
Soluţie. Să reprezentăm numărul 133,54 în formă exponențială normalizată:
1,3354*10 2 = 1,3354*exp 10 2
Numărul 1,3354*exp 10 2 este format din două părți: mantisa M=1,3354 și exponentul exp 10 =2
Dacă mantisa este în intervalul 1 ≤ M Reprezentarea unui număr în formă exponențială denormalizată.
Dacă mantisa este în intervalul 0,1 ≤ M Să reprezentăm numărul în formă exponențială denormalizată: 0,13354*exp 10 3

Exemplul nr. 2. Reprezentați numărul binar 101.10 2 în formă normalizată, scrisă în standardul IEEE754 pe 32 de biți.
Tabelul adevărului


Calculul limitelor

Aritmetica în sistemul de numere binar

Operațiile aritmetice în sistemul binar sunt efectuate în același mod ca și în sistemul zecimal. Dar, dacă în sistemul numeric zecimal transferul și împrumutul sunt efectuate cu zece unități, atunci în sistemul numeric binar - cu două unități. Tabelul arată regulile de adunare și scădere în sistemul numeric binar.
  1. Când adăugați două unități într-un sistem de numere binar, acest bit va fi 0 și unitatea va fi transferată la bitul cel mai semnificativ.
  2. Când scădeți unul din zero, unul este împrumutat din cifra cea mai mare, unde există 1. O unitate ocupată în această cifră dă două unități în cifra în care se calculează acțiunea, precum și una în toate cifrele intermediare.

Adăugarea de numere ținând cont de semnele lor pe o mașină este o succesiune a următoarelor acțiuni:

  • conversia numerelor originale în codul specificat;
  • adăugarea codurilor pe biți;
  • analiza rezultatului obtinut.
La efectuarea unei operații în cod invers (modificat invers), dacă în urma adunării apare o unitate de transport în bitul de semn, aceasta este adăugată la bitul de ordin inferior al sumei.
Atunci când se efectuează o operație în codul complement a doi (complement a doi modificat), dacă o unitate de transport apare în bitul de semn ca urmare a adunării, aceasta este aruncată.
Operația de scădere într-un calculator se realizează prin adunare după regula: X-Y=X+(-Y). Acțiunile ulterioare sunt efectuate în același mod ca și pentru operația de adăugare.

Exemplul nr. 1.
Dat: x=0,110001; y= -0,001001, adăugați codul modificat invers.

Dat: x=0,101001; y= -0,001101, adăugați cod suplimentar modificat.

Exemplul nr. 2. Rezolvați exemple de scădere a numerelor binare folosind complementul la 1 și metoda purtării ciclice.
a) 11 - 10.
Soluţie.
Să ne imaginăm numerele 11 2 și -10 2 în cod invers.

Numărul binar 0000011 are un cod reciproc de 0,0000011

Să adăugăm numerele 00000011 și 11111101

7 6 5 4 3 2 1 0
1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0

7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0

A avut loc o depășire în a 2-a cifră (1 + 1 = 10). Prin urmare, scriem 0 și mutam 1 la a treia cifră.
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0

7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

Ca rezultat obținem:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

A avut loc un transfer de la bitul de semn. Să-l adăugăm (adică 1) la numărul rezultat (efectuând astfel procedura de transfer ciclic).
Ca rezultat obținem:
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1

Rezultatul adunării: 00000001. Să îl convertim în reprezentare zecimală. Pentru a traduce o parte întreagă, trebuie să înmulțiți cifra unui număr cu gradul corespunzător al cifrei.
00000001 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1
Rezultatul adunării (notație zecimală): 1

b) 111-010 Să ne imaginăm numerele 111 2 și -010 2 în cod invers.
Codul invers pentru un număr pozitiv este același cu codul înainte. Pentru un număr negativ, toate cifrele numărului sunt înlocuite cu opuse (1 cu 0, 0 cu 1), iar o unitate este introdusă în cifra semnului.
Numărul binar 0000111 are un cod reciproc de 0,0000111
Numărul binar 0000010 are un cod reciproc de 1,1111101
Să adăugăm numerele 00000111 și 11111101
A avut loc o depășire în a 0-a cifră (1 + 1 = 10). Prin urmare, scriem 0 și mutam 1 la prima cifră.

7 6 5 4 3 2 1 0
1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0

A avut loc un debordare în prima cifră (1 + 1 = 10). Prin urmare, scriem 0 și mutam 1 la a 2-a cifră.
7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0

A avut loc o depășire în a 2-a cifră (1 + 1 + 1 = 11). Prin urmare, scriem 1 și mutam 1 la a treia cifră.
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
1 0 0

A avut loc o depășire în a 3-a cifră (1 + 1 = 10). Prin urmare, scriem 0 și mutam 1 la a 4-a cifră.
7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 1 0 0

A avut loc o depășire în al 4-lea bit (1 + 1 = 10). Prin urmare, scriem 0 și mutam 1 la a 5-a cifră.
7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 1 0 0

A avut loc o depășire în a 5-a cifră (1 + 1 = 10). Prin urmare, scriem 0 și mutam 1 la a șasea cifră.
7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 1 0 0

A avut loc o depășire în al 6-lea bit (1 + 1 = 10). Prin urmare, scriem 0 și mutam 1 la a 7-a cifră.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 1 0 0

A avut loc o depășire în al 7-lea bit (1 + 1 = 10). Prin urmare, scriem 0 și mutam 1 la a 8-a cifră.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

Ca rezultat obținem:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

A avut loc un transfer de la bitul de semn. Să-l adăugăm (adică 1) la numărul rezultat (efectuând astfel procedura de transfer ciclic).
Ca rezultat obținem:
7 6 5 4 3 2 1 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1

Rezultat adunare: 00000101
Avem numărul 00000101. Pentru a converti întreaga parte, trebuie să înmulțiți cifra numărului cu gradul corespunzător al cifrei.
00000101 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *1 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 4 + 0 + 1 = 5
Rezultatul adunării (notație zecimală): 5

Adunarea numerelor reale binare în virgulă mobilă

Pe un computer, orice număr poate fi reprezentat în format virgulă mobilă. Formatul în virgulă mobilă este prezentat în figură:


De exemplu, numărul 10101 în format virgulă mobilă poate fi scris astfel:


Calculatoarele folosesc o formă normalizată de scriere a unui număr în care poziția punctului zecimal este întotdeauna dată înaintea cifrei semnificative a mantisei, adică. este îndeplinită condiția:
b -1 ≤|M| Număr normalizat - Acesta este un număr care are o cifră semnificativă după virgulă zecimală (adică 1 în sistemul numeric binar). Exemplu de normalizare:
0,00101*2 100 =0,101*2 10
111,1001*2 10 =0,111001*2 101
0,01101*2 -11 =0,1101*2 -100
11,1011*2 -101 =0,11011*2 -11

Când se adaugă numere în virgulă mobilă, alinierea ordinii se realizează către o ordine superioară:

Algoritm pentru adăugarea numerelor în virgulă mobilă:

  1. Alinierea comenzilor;
  2. Adăugarea mantiselor în codul suplimentar modificat;
  3. Normalizarea rezultatului.

Exemplul nr. 4.
A=0,1011*2 10 , B=0,0001*2 11
1. Alinierea comenzilor;
A=0,01011*2 11 , B=0,0001*2 11
2. Adăugarea mantiselor în codul suplimentar modificat;
MA mod suplimentar. =00,01011
MB mod suplimentar. =00,0001
00,01011
+ 00,00010
=
00,01101
A+B=0,01101*2 11
3. Normalizarea rezultatului.
A+B=0,1101*2 10

Exemplul nr. 3. Scrieți un număr zecimal în sistemul numeric binar și adăugați două numere în sistemul numeric binar.

© 2024. srcaltufevo.ru. Dezvoltare de sine. Sănătate. Povesti de succes. Relaţie. Copiii nostri.