Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » referate » informatica
Reprezentarea in virgula fixa (vf)

Reprezentarea in virgula fixa (vf)


REPREZENTAREA IN VIRGULA FIXA (VF)

Pentru reprezentarea numerelor reale in virgula fixa se foloseste bitul cel mai semnificativ ca bit de semn. Modulul partii intregi si partea fractionara au un numar prefixat de biti pe care se reprezinta si se aplica urmatoarele reguli:

alinierea in locatia de memorie se face la virgula virtuala;

daca valoarea partii intregi este mai mica decat valoarea maxima ce poate fi reprezentata pe bitii alocati partii intregi se adauga la stanga zerouri suplimentare;



daca valoarea partii intregi este mai mare decat valoarea maxima ce poate fi reprezentata pe bitii alocati partii intregi se pierd cifrele cele mai semnificative.

daca valoarea partii fractionare este mai mica decat valoarea maxima ce poate fi reprezentata pe bitii alocati partii fractionare se adauga la dreapta zerouri nesemnificative;

daca valoarea partii fractionare este mai mare decat valoarea maxima ce poate fi reprezentata pe bitii alocati partii fractionare se pierd cifrele cele mai nesemnificative.

Exemplu

Sa presupunem ca se folosesc 2 octeti (16 biti) pentru reprezentarea numerelor reale, din care bitul de rang 15 va fi folosit pentru semn, 6 biti vor fi folositi pentru reprezentarea partii intregi si 9 biti pentru reprezentarea partii fractionare.

15

S

Partea intreaga

Partea fractionara

Numarul 19,270751953125 are reprezentarea binara 10011,010001010101.

Reprezentarea acestui numar va fi:

Numarul negativ 19,270751953125 are reprezentarea binara ca si cea a numarului pozitiv, cu deosebirea ca bitul de semn este 1:

In schimb, 243,270751953125 are reprezentarea binara 11110011,010001010101 si partea intreaga a numarului este mai mare decat valoarea maxima reprezentabila pe cei 6 biti alocati partii intregi. Astfel, acest numar se va reprezenta sub forma:

producandu-se o asa numita depasire, adica pierzandu-se 2 biti cei mai semnificativi, numarul reprezentat fiind de fapt 51,270751953125.

Dupa modul de exprimare a numerelor negative, exista trei forme uzuale de reprezentare a numerelor cu semn in virgula fixa:

a)     Reprezentarea prin marime si semn (Cod Direct - CD)

Un numar reprezentat prin marime si semn se poate scrie conform relatiei:

,

este bit de semn, iar pentru si au fost obtinute in urma conversiei numarului N in sistemul de numeratie binar.

Macheta de reprezentare a numarului N este:

Observatie. S-a considerat ca partea intreaga se reprezinta prin n cifre binare, iar partea fractionara prin m cifre binare:

daca T se obtine reprezentarea numerelor subunitare;

daca T se obtine reprezentarea numerelor intregi.

Exemple

Sa se reprezinte in cod direct (pe 8 biti) numarul , respectiv numarul .

Rezolvare

T

Sa se reprezinte in cod direct (pe 16 biti) numarul , respectiv numarul .

Rezolvare

T

Adunarea in cod direct (CD)

Se aduna marimile numerelor, fara cifra de semn si se da rezultatului semnul comun celor doua numere.

Fie:

,

,

Insumarea se face incepand de la bitul cel mai putin semnificativ al reprezentarii numerelor, tinandu-se cont de transportul de la rangul anterior .

Se considera , iar daca va apare (transport de la bitul CMS al marimii) avem de-a face cu depasire binara. Rezultatul operatiei poate fi corect cand nu apare transport de la cifra cea mai semnificativa a marimii rezultatului si poate fi incorect cand apare transport.

Pentru simplitate, vom lucra cu numere intregi reprezentate pe un octet, primul bit fiind bitul de semn iar urmatorii sapte biti pentru marime .

Exemple:

Sa se insumeze cu , avand cu .

Rezolvare


Verificand rezultatul se obtine:

Rezultatul este corect.

Sa se calculeze , avand si .

Rezolvare

Deoarece in acest caz rezulta transport de la bitul CMS, rezultatul este incorect (rezultatul insumarii celor doua numere nu poate fi reprezentat utilizand doar sapte cifre binare).

Verificand rezultatul se obtine:

Sa se calculeze , avand si .

Rezolvare

Nu avem transport de la bitul CMS. Verificand rezultatul se obtine:

Rezultatul este corect.

Sa se calculeze , avand si .

Rezolvare

Rezultatul este incorect, apare transport de la bitul CMS.

Verificand rezultatul se obtine:

Daca cele doua numere au semne diferite procedura de lucru este asemanatoare celei ce urmeaza, cand numerele sunt reprezentate in cod invers.

b) Reprezentarea prin complement fata de 1 (Cod Invers - CI)

Un numar reprezentat in cod invers se poate scrie:

pentru , iar reprezinta cifrele binare ale numarului .

Observatie.

Reprezentarea prin complement fata de 1 se obtine astfel:

Fie calculand:

este reprezentarea in cod direct a valorii absolute a numarului N.

Fie prin inversarea cifrelor binare (inclusiv cifra de semn) din reprezentarea in cod direct a numarului in valoare absoluta.

Exemplu

Sa se reprezinte in cod invers numerele si (reprezentarea pe un octet).

Rezolvare

Numerele pozitive se reprezinta in CI la fel ca si in CD.

CI pentru se poate calcula in doua variante:

reprezinta cifrele binare ale numarului , iar este cifra de semn.

Calculand:

Acelasi rezultat se obtine daca se pleaca de la reprezentarea in CD a numarului in valoare absoluta, adica si se inverseaza toate cifrele binare.

Adunarea scaderea in cod invers (CI)

Adunarea scaderea numerelor cu acelasi semn

a)     Daca ambele numere sunt pozitive, reprezentarea lor in cod invers este identica reprezentarii in cod direct.

b)    Numerele sunt negative, fie si .

In continuare se va lucra cu numere intregi reprezentate pe un octet.

Se noteaza cu , reprezentarea in cod direct a valorilor absolute ale numerelor si .

Avand in vedere ca rezultatul trebuie sa fie de forma:

apare necesar ca transportul de la cifra de semn sa fie adunat la cifra cea mai putin semnificativa:

Exemple:

1. Sa se calculeze , avand: si .

Rezolvare

Verificand: , rezultat corect.

2. Sa se calculeze , avand: si .

Rezolvare

T , rezultatul este incorect.

Adunarea scaderea numerelor cu semne diferite

Fie si .

Reprezentarea lui este aceeasi in cod direct si cod invers.

In urma operatiei de adunare obtinem:

Rezultatul este pozitiv sau negativ, dupa valorile absolute ale numerelor si .

Exemple:

1. Sa se calculeze , avand: si .

Rezolvare

Verificand:

rezultat corect.

2. Sa se calculeze , avand: si .

Rezolvare

Verificand:

,

rezultat corect.

Si in acest caz rezultatul este corect. Pentru verificarea rezultatului se va tine seama de bitul de semn:

daca acesta este T reprezentarea rezultatului este acelasi in cod invers si cod direct;

daca acesta este T reprezentarea rezultatului este in cod invers si difera de reprezentarea lui in cod direct.

Scaderea a doua numere binare se rezuma la adunarea celor doua numere, utilizand reprezentarea in cod invers.

Fie si . Relatia este echivalenta cu .

Observatie. Adunarea in cod invers, ca si in cod complementar, opereaza asupra tuturor cifrelor binare, inclusiv asupra cifrei de semn.

c) Reprezentarea prin complement fata de 2 (Cod Complementar - CC)

Forma de scriere in cod complementar este:

unde:

si: , iar (pentru ) reprezinta cifrele binare ale numarului .

Codul complementar al unui numar se poate scrie astfel:

Fie calculand:

are aceasi semnificatie ca la reprezentarea in CI;

Fie adunand 1 la cifra cea mai putin semnificativa (CCMPS) a reprezentarii numarului in CI;

Daca se considera reprezentarea in CD a numarului in valoare absoluta, pentru obtinerea codului complementar, incepand de la CCMPS - se lasa neschimbate toate cifrele de zero, inclusiv prima cifra binara a carei valoare este 1; apoi toate celelalte cifre binare se vor inversa, inclusiv cifra de semn.

Exemplu

Sa se reprezinte in CC numerele 14 si -14 (pe un octet).

Rezolvare

Pentru a calcula CC al numarului -14 vom folosi cele trei metode.

fiind cifrele binare ale numarului zecimal 14, iar cifra de semn.

2.

3.

In sistemul octal sau hexazecimal vom avea:

Gruparea a trei cifre binare (respectiv patru cifre binare) se face incepand de la CCMPS (pentru numerele intregi).

Adunarea scaderea in cod complementar (CC)

Adunarea scaderea numerelor cu acelasi semn

a)     Daca ambele numere sunt pozitive, reprezentarea lor in cod complementar este identica reprezentarii in CD.

b)    Numerele sunt negative.

Fie si :

,

Prin , am notat reprezentarile in cod direct ale valorilor absolute pentru numarul , respectiv .

Deci:

Tinand seama de forma de reprezentare a rezultatului, apare necesar ca transportul de la cifra de semn sa se neglijeze.

Exemplu

Sa se calculeze: , avand si .

Rezolvare

se ignora

Pentru verificarea rezultatului se va calcula:

Observatie. Daca in urma insumarii a doua numere cu acelasi semn, rezultatul are semn contrar T acesta este eronat (valoarea rezultatului nu se poate incadra pe numarul de biti utilizat).

Adunarea scaderea numerelor cu semne diferite

Fie si .

Reprezentarea lui este aceeasi in cod direct, cod invers si cod complementar.

In urma operatiei de adunare obtinem:

Daca rezultatul va fi pozitiv, iar pentru rezultatul va fi negativ.

Exemple

Sa se calculeze: , avand si .

Rezolvare

transport care se neglijeaza

Pentru verificarea rezultatului se va calcula:

Sa se calculeze: , avand si .

Rezolvare

Pentru verificarea rezultatului se va calcula:

Pentru verificarea rezultatului se va tine seama de valoarea bitului de semn:

daca acesta este - rezultatul este pozitiv si reprezentarea este aceeasi in CD si CC;

daca aceasta este - rezultatul este negativ si avem reprezentari diferite in CD si CC.

Observatie

In calculatoarele IBM-PC reprezentarea in virgula fixa se face pentru numerele intregi. Se utilizeaza formatele:

Format intreg pe cuvant (word), avand macheta:

Formatul scurt:

Formatul lung:

unde: S este bitul de semn si

iar:

sunt cifrele reprezentarii binare a numarului. Daca (numar negativ) se utilizeaza reprezentarea prin complement fata de 2 (cod complementar).

In tabelul urmator sunt prezentate formatul, precizia si domeniul de valori ale datelor reprezentate in virgula fixa la Intel.

Tipul

Lungime

Precizie

Domeniul de valori (binar)

Domeniul de valori (zecimal)

Format

Word

Format

Scurt

Format

Lung





Politica de confidentialitate


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