Lucrare de laborator nr. 2.
Obiectiv: Pentru a examina numerele de înregistrare în calculatoare sub formă de înainte, înapoi și codurile de cod și aritmetice complementare.
Toate operațiile computerului sunt efectuate pe numere reprezentate de coduri speciale ale mașinilor. Utilizarea acestora vă permite să gestionați cifrele semnate ale numerelor în același mod ca și cifrele semnificative și, de asemenea, să înlocuiți operația de scădere cu operația de adăugare.
Există cod direct (P), cod invers (OK) și cod suplimentar (DK) de numere binare.
Se formează un cod numeric binar direct din valoarea absolută a acestui număr și codul semnului (0 sau 1) înainte de cea mai înaltă cifră numerică.
Codul invers al unui număr binar este format conform următoarei reguli. Codul invers al numerelor pozitive coincide cu codul lor direct. Codul invers al unui număr negativ conține unul în cifra semnată a numărului, iar cifrele semnificative ale numărului sunt înlocuite cu cifre inverse, adică zerourile sunt înlocuite cu cele, iar cele se înlocuiesc cu zerouri.
Codul invers a fost dat numele său deoarece codurile de cifre negative au fost înlocuite cu inverse. Cele mai importante proprietăți ale codului numeric invers sunt:
Adăugarea unui număr pozitiv C cu valoarea sa negativă în codul invers produce un așa numit. unitate de mașină MEok = 1: 11 ... 11, constând din unități în cifrele semnate și semnificative ale numărului;
zero în codul invers are un dublu sens. Poate fi fie un număr pozitiv - 0: 00 ... 00, fie un număr negativ 1: 11 ... 11. Valoarea numărului negativ este aceeași cu cea a MEOK. Reprezentarea duală a lui 0 a fost motivul pentru care în computerele moderne toate numerele sunt reprezentate nu de invers, ci de un cod suplimentar.
Codul suplimentar pentru numere pozitive coincide cu codul lor direct. Codul suplimentar al unui număr negativ este rezultatul însumării codului numeric invers cu cifra cea mai puțin semnificativă (2 0 pentru numere întregi, 2 pentru cele fracționate)
Proprietățile principale ale codului suplimentar:
Adăugarea de coduri suplimentare a unui număr pozitiv C cu valoarea sa negativă dă un așa-zis. codul mașinii pentru codul suplimentar:
MEdk = Meok + 2 0 = 10: 00 ... 00,
și anume numărul 10 (două) din cifrele numărului;
codul suplimentar este numit astfel deoarece reprezentarea numerelor negative este completarea codului direct al numerelor către unitatea de mașină MEdk.
Codurile inverse și adiționale modificate ale numerelor binare diferă de codurile inverse și adiționale, respectiv de dublarea valorilor semnalelor digitale. Semnul "+" din aceste coduri este codificat de două cifre semnate zero și semnul "-" de două cifre unice.
Scopul introducerii codurilor modificate este de a stabili și de a detecta cazurile când se obține un rezultat incorect atunci când valoarea rezultatului depășește rezultatul maxim posibil în grila alocată a aparatului. În acest caz, transferul de la cifra semnificativă poate distorsiona valoarea celei mai puțin semnificative cifre. Valoarea semnelor "01" indică o depășire pozitivă a grila de biți, iar "10" indică o depășire negativă. În prezent, în aproape toate calculatoarele, rolul de două cifre pentru fixarea depășirii grilei de biți este jucat de transferurile care merg la cifrele semnate și semnate.
Operații aritmetice în codurile mașinilor.
Adăugare (scădere). Operația de scădere este efectuată la operația de adăugare prin conversia numerelor în codul invers sau adițional în conformitate cu tabelul.
Aici A și B sunt numere nonnegative.
Parantezele din expresiile reprezentate indică înlocuirea operației de scădere cu operația de adăugare cu codul invers sau complementar al numărului corespunzător. Adăugarea de numere binare se efectuează secvențial, biți conform tabelului. La efectuarea adăugării cifrelor, trebuie respectate următoarele reguli:
Termenii trebuie să aibă același număr de cifre. Pentru a egaliza bitmapul sumei, se pot adăuga zerouri nesemnificative în partea stângă a întregii părți a numărului și zerourile nesemnificative din partea dreaptă a părții fracționare a numărului.
Semnele categoriei participă la compoziție, precum și la cele semnificative.
Transformările de cod necesare sunt efectuate cu schimbarea semnalelor de numere. Atribuite zerouri nesemnificative schimba sensul lor atunci când convertirea în conformitate cu regula generală.
Când convertiți o unitate de transport de la cea mai înaltă cifră semnată, în cazul utilizării OK, această unitate este adăugată cu cea mai mică cifră numerică. Atunci când utilizați DK, unitatea de transfer este pierdută. Semnul rezultat este generat automat, rezultatul fiind reprezentat în codul în care sunt prezentate termenii originali.
Exemplul 1. Adăugați două numere: A10 = 7, B10 = 16.
Numerele inițiale au o adâncime de biți diferită, este necesar să aliniați grila de biți:
Adăugarea în codul invers sau complementar dă același rezultat:
Exemplul 2. Adăugați două numere: A10 = +16, B10 = -7 în OK și DC.
Tabelul necesită transformarea A + (-B), în care al doilea termen este transformat luând în considerare semnul
Când numerele au fost adăugate la OK și DC, s-au efectuat transferuri pentru descărcarea semnului și pentru descărcarea semnului. În cazul OK, transferul de la cifra semnată necesită o adăugare suplimentară a unității low order (clauza 4 a regulii). În cazul DC, acest transfer este ignorat.
Înmulțirea și împărțirea numerelor binare se face în cod direct prin metoda de schimbare.
Luați două perechi de numere zecimale zecimale la alegere: A, B, C, D.
Calculați (A-B) ok, (B-A) dk, (C-D) ok, (D-C) dk.
Documente conexe:
acțiuni. Funcții matematice standard încorporate folosite în Turbo Pascal. Folosit în aritmetică. tipul necesar. Concluzie privind activitatea întrebărilor suplimentare. calculator. contul limitat și contul de oaspeți.
suplimentare. este studiat. lucru. Disciplină, organizare generală. Încrederea în lucrul cu un computer. înapoi. Operații aritmetice. Motivul pentru reprezentarea inexactă a numerelor non-întreg. Notă. Obiectivul principal. tipuri de algoritmi (direct.
bit de date suplimentare M - cod M - cod (... intrare în baza de date relațională) t urbo accelerare a calculatorului. operație inversă operație dublă secvență inversă a cifrelor număr secvență inversă feedback feedback; întârziată inversă.
lucru. În special, ReadLn (a, b) va aștepta intrarea a două numere întregi. acțiunea aritmetică (+, -, *, /) și încă un număr. Computerul. operator pentru: Numar direct: -5 -4 -3 -2 -1 0 1 2 3 4 5 Numar invers: 5. Operatori suplimentari. Ține minte.
lucrați cu nivelele invariante Scrieți problema operațiilor aritmetice peste numere în termen de 1000 (20 ore) 106 Numărul de înregistrare.