Bazele aritmeticii mașinilor

Numărul de laborator 123. Bazele aritmeticii computerizate.

Scopul lucrării. Pentru a studia fundamentele calculului aritmetic, reprezentările numerelor în codurile directe, inverse și complementare și operațiile aritmetice pe ele.

Orice date (numere, text, instrucțiuni de program etc.) din memoria calculatorului sunt reprezentate de codurile binare, care reprezintă o colecție de biți. În special, un cod binar care conține 8 biți (de exemplu: "8 biți") este numit octet. Următoarele formate de coduri binare sunt utilizate pentru stocarea datelor: 8 biți (byte), 16 biți (jumătate de cuvânt), 32 biți (cuvânt) și 64 biți (cuvânt dublu).

Pentru a efectua operații aritmetice, utilizați coduri speciale pentru a reprezenta numere, ceea ce vă permite să reduceți funcționarea scăderii numerelor în adăugarea aritmetică a acestor coduri. Distingeți direct. invers și coduri suplimentare. Codul direct este folosit pentru a reprezenta numere negative în memoria calculatorului, precum și pentru efectuarea operațiilor de înmulțire și de divizare. Codurile inverse și adiționale sunt utilizate pentru efectuarea operației de scădere, care este înlocuită cu adăugarea de numere cu semne diferite: a-b = a + (-b).

În codul numărului, fiecare bit corespunde unui element specific cu o rețea de biți. Pentru a scrie un semn numeric în bitmap, există un bit fix definit strict, de obicei ultimul bit din grila de biți.

Notă. Suntem de acord că atunci când scriem un cod, semnul numeric al numărului trebuie să fie separat printr-o virgulă de la alte cifre. Dacă formatul numărului nu este specificat, vom presupune că numărul este de 8 biți (octet).

Activitatea 1. Înregistrați următoarele numere în codurile înainte, înapoi și suplimentare.

a) 1101011; b) -101011; c) -101101; d) -1100111.

Cod integer direct. Codul direct al unui număr binar este înregistrarea numărului în sine. Valoarea semnului semnului pentru numere pozitive este setată egală cu zero (0), pentru numere negative la unitate (1). De exemplu, pentru a scrie un cod folosind un octet, atunci:

Când adăugați numere într-o cifră semnată, pot apărea două numere, a doua unitate dintr-o virgulă se numește unitatea de transfer.

Atunci când adăugați numere în codul suplimentar, unitatea de transfer rezultată din categoria de semn este eliminată.

Atunci când se adaugă numere în codul invers, unitatea de transfer rezultată în cifra semnată este adăugată la cifra inferioară a sumei codurilor.

Dacă rezultatul operațiilor aritmetice este un cod al unui număr negativ, trebuie să îl convertiți într-un cod direct. În acest caz, codul invers este transformat într-o înlocuire directă a cifrelor în toate cifrele, cu excepția celei semnate, de cele opuse. Codul suplimentar este convertit în linie dreaptă în același mod ca și cel invers, urmat de adăugarea unui cod la ordinul inferior.

Un exemplu. Adăugați X și Y în codurile opuse și adiționale:

a) X = 1111 și Y = -101.

Să adăugăm numerele, utilizând:

Deoarece rezultatul adunării este codul unui număr pozitiv (semnul plus (+) corespunde cu 0 în descarcarea semnului), atunci (X + Y) obp = (X + Y) add = (X + Y) pr.

Să adăugăm numerele, utilizând:

Deoarece suma este un cod de un număr negativ (semnul 1), este necesar să se traducă rezultatele într-un cod direct:

din codul invers: (X + Y) obr = 1,1110011  (X + Y) pr = 1,0001100;

din codul suplimentar: (X + Y) add = 1,1110100  (X + Y) pr = 1,0001011 + 0,0000001, (X + Y) np = 1,0001100.

Avem X + Y = -1100, rezultatul este același cu suma obținută conform regulilor aritmetice binare.

Sarcina 3. Adăugați numerele X și Y în codurile modificate inversate și modificate de opt cifre suplimentare. Dacă se detectează o depășire, creșteți numărul de cifre din coduri și repetați sumarea. Puneți rezultatul într-un cod simplu. Verificați rezultatul utilizând regulile aritmetice binare.

Coduri inversate și suplimentare modificate.

Depășirea grilei de biți poate duce la transferul unei unități la descărcarea semnului, ceea ce va duce la un rezultat incorect. Numărul pozitiv care rezultă din operarea aritmetică poate fi perceput ca fiind negativ, deoarece în semn de descărcare va exista "1" și invers.

De exemplu: X = 0.1011110

X și Y sunt coduri de numere pozitive, dar în procesul de adăugare în evacuarea semnului a apărut "1", ceea ce înseamnă codul unui număr negativ. Pentru a recunoaște depășirea grila de biți, sunt introduse codurile modificate.

Codul inversat modificat se caracterizează prin faptul că nu se atribuie nici unuia, ci două cifre semnului numeric. Forma de scriere a numerelor în codul invers modificat este următoarea:

pentru un număr pozitiv X =  X

Bazele aritmeticii mașinilor
=;

pentru un număr negativ X =  X

Bazele aritmeticii mașinilor
=;

(

Bazele aritmeticii mașinilor
- desemnarea unei operații de negare logică "nu X", dacă X = 0, atunci
Bazele aritmeticii mașinilor
= 1; X = 1,
Bazele aritmeticii mașinilor
= 0).

În codurile inversate și adiționale modificate, nu se atribuie o singură cifră decât două cifre la semnul numeric: "00" corespunde semnului "+", "11" semnului "-". Orice altă combinație ("01" sau "10") care generează semnale biți este un semn de depășire a bitmap-urilor. Adăugarea numerelor în codurile modificate nu diferă de adăugarea în codurile obișnuite inversă și adiționale.

Un exemplu. Sunt date două numere: X = 101001 și Y = -11010. Adăugați-le în alte coduri suplimentare și modificate.

Articole similare