Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » tehnologie » electronica electricitate
Depasirea binara

Depasirea binara


Depasirea binara

Depasirea valorii maxime

Una din problemele numerelor binare cu semn, este bit-ului de depasire. Acesta apare in cazul in care rezultatul adunarii sau scaderii efectuate intre doua numere binare este mai mare decat valoarea maxima ce poate fi reprezentata cu numarul de biti alocati. Tineti minte ca pozitia bit-ului de semn este fixata la inceputul problemei. In exemplul precedent, am utilizat cinci biti pentru reprezentarea unui numar, iar bit-ul din stanga a fost utilizat pe post de bit de semn, cu pondere negativa. Cu cinci biti ramasi pentru reprezentarea valorilor, cel mai mare numar ce-l putem scrie astfel este +3110(0111112), iar cel mai mic -3210(1000002). Daca aplicam o operatie de adunare unor astfel de numere, iar rezultatul este mai mare decat 3110 sau mai mic decat -3210, raspunsul obtinut nu va fi corect.

Adunarea a doua numere binare

Sa luam un exemplu:

Adaugand bit-ul de semn, adunarea celor doua numere arata astfel:

1 11 <--- biti ce se trec mai departe
010001
+ 010011
--------
100100

Raspunsul (1001002) este egal cu -2810, nu cu +3610, asa cum ar trebui sa obtinem adunand +1710 cu +1910. Evident, acest raspuns nu este corect. Dar unde am gresit? Din moment ce valoarea reala a sumei (3610) depaseste limita permisa de cei cinci biti (plus bit-ul de semn), ajungem la o eroare de depasire binara.



Scaderea a doua numere binare

O eroare similara obtinem si in cazul adunarii a doua numere negative (scadere binara) a carei suma este mai mica decat -3210:

-1710 = 1011112
-1910 = 1011012

Aplicand operatia de adunare celor doua numere, obtinem:

1 1111 <--- biti ce se trec mai departe
101111
+ 101101
--------
1011100

Dupa inlaturarea bit-ului in plus, rezultatul final este:

Acest raspuns este, desigur, incorect.

Adaugarea unui bit suplimentar

Sa reconsideram cele doua exemple de mai sus, dar de aceasta data utilizand sase biti pentru reprezentarea numarului. Al saptelea bit va fi bit-ul de semn:

1710 + 1910 (-1710) + (-1910)

1 11 11 1111
0010001 1101111
+ 0010011 + 1101101
--------- ---------
01001002 110111002 <--- inlaturarea bit-ului suplimentar

Raspunsuri: 01001002 = +3610
10111002 = -3610

Utilizand un numar suficient de biti pentru reprezentarea rezultatelor, raspunsurile sunt corecte.

In aceste exemple am putut determina erorile de depasire prin realizarea "de mana" a operatiilor de adunare sub forma zecimala. Aceasta metoda de verificare nu este insa foarte eficienta. Pana la urma, intregul scop al complementarii este realizarea adunarii sub forma binara. Acest lucru este valabil mai ales in cazul proiectarii circuitelor electronice: circuitul trebuie sa poata sesiza singur existenta unei erori de depasire, fara ajutor uman.

Verificarea erorilor

Cea mai eleganta metoda de rezolvare a acestei situatii consta in verificarea "semnului" sumei si compararea acestuia cu semnele numerelor insumate. Desigur, rezultatul sumei a doua numere pozitive este un numar pozitiv, iar suma a doua numere negative, este un numar negativ. Putem observa ca, de fiecare data cand avem o situatie de depasire, semnul sumei este invers fata de semnul celor doua numere adunate: +1710 plus +1910 ne-a dat -2810, sau, -1710 plus -1910 ne-a dat +2810. Prin simpla verificare a semnelor, putem sa ne dam seama ca exista o eroare iar rezultatul este fals.

Ce se intampla in cazul in care unul din numere este pozitiv iar celalalt negativ? Care ar trebui sa fie semnul sumei? Raspunsul este simplu: atunci cand numerele insumate sunt de semne diferite, nu va exista niciodata o eroare de depasire. Motivul este la fel de simplu: depasirea are loc atunci cand valoarea unui numar este mai mare decat cea permisa de numarul de biti utilizati. In cazul numerelor de semn contrar, valoarea rezultatului trebuie sa fie intre cele doua numere, prin urmare, nu poate fi mai mare sau mai mica decat limita maxima permisa de numarul de biti.

Din fericire, aceasta metoda de identificare a erorii de depasire este usor de implementat intr-un circuit electronic.

4.2.6. Grupari de biti

Numarul de biti necesar

La reprezentarea numerelor binare cu ajutorul circuitelor electronice, suntem nevoiti sa utilizam un numar suficient de circuite cu tranzistori pentru reprezentarea tuturor bitilor. Cu alte cuvinte, la proiectarea unui circuit digital, trebuie sa ne decidem cati biti vom utiliza (maxim) pentru reprezentarea valorilor, din moment ce fiecare bit necesita un circuit pornit/oprit separat.

Acest principiu este analog proiectarii unui abac pentru reprezentarea digitala a numerelor zecimale: trebuie mai intai sa ne decidem cate cifre dorim sa reprezentam cu acest dispozitiv primitiv. Fiecare cifra necesita o noua linie de margele.

Un abac cu 10 linii poate reprezenta un numar zecimal cu 10 cifre, sau o valoare maxima de 9.999.999.999. Daca am dori reprezentarea unui numar mai mare decat atat, va trebui sa ma adaugam una sau mai multe linii.

Numarul de biti

Orice circuit digital se proiecteaza pe un anumit numar de biti: numarul maxim de biti alocati pentru reprezentarea valorilor numerice. Calculatoarele digitale initiale erau proiectate pe patru sau pe opt biti. Sistemele moderne sunt proiectate pe 32 sau pe 64 de biti.

Pentru a vorbi mai usor de numarul de biti dintr-o grupare, cele mai uzuale au primit si un nume, astfel:

Bit: unitatea fundamentala a notatiei binare; echivalenta cu o cifra zecimala
Crumb, Tydbit sau Tayste: 2 biti
Nibble sau Nybble: 4 biti
Nickle: 5 biti
Byte: 8 biti
Deckle: 10 biti
Playte: 16 biti
Dynner: 32 biti
Word: (in functie de sistem)

Cel mai ambiguu termen este word-ul. Pentru un sistem pe 32 de biti, un word inseamna 32 de biti. Daca sistemul utilizeaza 16 biti, atunci word-ul este de 16 biti. Termenul playte si dynner se refera tot timpul la 16, respectiv 32 de biti, indiferent de contextul in care sunt folositi.

Tot in functie de sistem sunt folositi si termenii de "double word" sau "longword" (ambii termenii desemnand o lungime dubla fata de lungimea standard), "half-word" (jumatatea lungimii) sau quad (de patru ori lungimea standard).





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.