Pagina 2 din 7
Tipuri Real Delphi
În Delphi, există patru tipuri reale: Single. Dublu. Extinsă și reală. Formatul lor comun este același:
Un semn este întotdeauna un pic. Este zero pentru numere pozitive și unul pentru numere negative. În ceea ce privește dimensiunile mantistei și exponentului, în ele se află diferența dintre tipuri.
Înainte de a vă deplasa la cifre specifice, să examinăm în detaliu tipul Real, făcând o scurtă deviere în poveste pentru asta. Real - acesta este tipul standard de limbă Pascal, care a fost prezent acolo inițial. Când a fost creat Pascal, procesoarele nu au încorporat încă suport pentru numere reale, astfel încât toate operațiile de acest tip au fost reduse la operațiuni cu numere întregi. În consecință, dimensiunea câmpurilor din tipul Real a fost aleasă pentru a optimiza aceste operații.
Microprocesorul Intel 8086/88 și versiunile îmbunătățite ale acestuia - 80286 și 80386 - nu aveau de asemenea suport hardware pentru numere reale. Dar sistemele bazate pe acești procesori au avut capacitatea de a conecta așa-numitul coprocesor. Acest cip a lucrat cu memorie prin magistrala principală a procesorului și a furnizat suport hardware pentru numere reale. În sistemele de sisteme medii, mufa coprocesorului a fost de obicei goală, deoarece a făcut sistemul mai ieftin (desigur, nu era o problemă să introducem un coprocesor acolo). Pentru fiecare CPU, coprocesoarele lor au fost emise, denumite Intel 8087, 80287 și 80387 respectiv. Au existat chiar coprocesoare produse de alte firme. Ei au lucrat mai repede decât Intel, dar au apărut pe piață mai târziu. Tipul de numere reale suportate de coprocesoare nu coincide cu Real.
Pentru a se asigura că sistemele lor de sprijin tipuri coprocesor, Borland Turbo Pascal introduce tipurile de Single, Double și extins. Extended - un tip coprocesor nativ, și tipuri de single și duble sunt obținute dintr-o trunchiere foarte simplu. Când încărcare de tip single sau dublă într-un registru intern al coprocesorului le convertește în ultima Extended. În schimb, atunci când descărcarea numărul acestor tipuri de registre în memoria coprocesor le trunchiază la dimensiunea dorită. Operațiunile interne sunt întotdeauna efectuate cu tipul de date extins (cu toate acestea, această regulă are o excepție, pe care o vom discuta mai târziu, după o analiză detaliată a diferitelor tipuri de format). Single și Double se utilizează pentru a economisi memoria. Nici unul dintre ele nu coincide cu tipul Real. În sistemele cu noi tipuri de coprocesoare sunt prelucrate în mod semnificativ (de 2-3 ori) mai repede decât reală (acest lucru, dat fiind faptul că Real tip după conversie corespunzătoare se ocupe, de asemenea, coprocesor, dacă vom compara tipul extins de prelucrare pe o mașină cu un coprocesor și Real pe o mașină fără coprocesor, apoi acolo pe operațiuni separate o diferență de aproximativ 100 de ori a fost atins). Pentru a programa aceste tipuri ar putea efectua și fără sisteme de co-procesor, va fi capabil de a le conecta la emulator software-ul de matematica. Procesarea acestor tipuri de către emulator a fost mai lentă decât procesarea Reală.
Incepand cu procesorul Intel ia 482-a cursul de integrare a procesorului și co-procesor pe un singur cip. Procentul de defecte în chips-uri este prea mare, astfel încât Intel merge la truc: în cazul în care căsătoria cip numai în partea coprocesor, pe acest cip sunt arse poduri care blochează coprocesor, iar cipul este vândut ca un procesor 80486SX, nu are built-in coprocesor (spre deosebire de o versiune completă, care a fost numit 80486DX). Au fost situația opusă, în cazul în care prejudiciul coprocesor nu a fost, dar procesorul nu este operațional. Asemenea cipuri au fost transformate într-un "coprocesor 80487". Dar acest lucru este de exotic, și în măsura în care știu, în Rusia, nu se ajunge la coprocesorul.
Procesorul Pentium în toate versiunile sale a avut un coprocesor încorporat. Astfel, odată cu apariția acestui tip de procesor Real a devenit un fel de povară, iar în prim plan au venit Single, Double și Extended. Pentru a minimiza reparația necesară a programelor, Borland a introdus o nouă directivă de compilatoare :. Valoarea implicită este OFF, ceea ce înseamnă că nu există compatibilitate completă. În acest caz, tipul Real din Delphi este același ca tipul Double. Dacă este activată compatibilitatea, tipul Real coincide cu prototipul său de la Pascal. Există un alt tip de real48, care întotdeauna, indiferent de setări, coincide cu vechiul Real. În continuare, în acest articol, sub cuvântul "Real", voi vorbi mereu cu vechiul tip. Observ că toate acestea au apărut numai în Delphi 4, în versiunile anterioare, tipul Real48 a fost absent, iar tipul Real era întotdeauna vechi, șase octeți.
Deci, acum puteți ajunge la dimensiunile câmpurilor.