Cel mai bun răspuns
Diferența B / n scurt și lung int
Ei bine, diferența este foarte mică, dar poate fi foarte importantă în unele cazuri. Când programați al doilea obiectiv cel mai important (după ce ați făcut programul să faceți ceea ce se presupune) este salvarea memoriei pentru a face programul să ruleze cât mai repede posibil. Aici intervine cuvântul cheie „lung”. Lung este un număr întreg, dar întregul nu este exact o înțelegere lungă? Există, de asemenea, un „scurt”. Acum, de obicei, acestea sunt menționate cu int după ele, dar nu este necesar. diferența dintre ele este dimensiunea lor. În funcție de computer, dar în majoritatea cazurilor un „scurt” este de doi octeți, „lung” este de patru octeți și un „int” poate fi de doi sau patru octeți. Este important în programele pe care le declarați scurt sau lung, dacă știți exact cât de mare va fi numărul și cât de des va fi modificat, astfel încât să puteți economisi cât mai multă memorie posibil. Acum, până la intervalul care depinde de dimensiunea este de doi sau patru octeți. Iată un tabel pentru referința dimensiunilor și valorilor.
interval de dimensiuni
scurt int 2 octeți -32.768 până la 32.767
lung int 4 octeți -2.147.483.648 până la 2.147.483.647
int (16 biți) 2 octeți -32.768 până la 32.767
int (32 biți) 4 octeți -2.147 , 483,648 până la 2,147,483,647
Diferență B / w Float și Double
Numere în virgulă mobilă, cunoscute și sub numele de reale numere, sunt folosite la evaluarea expresiilor care necesită precizie fracționată. De exemplu, calculele precum rădăcina pătrată sau transcendentale, cum ar fi sinusul și cosinusul, duc la o valoare a cărei precizie necesită un tip cu virgulă mobilă. Java implementează setul standard (IEEE – 754) de tipuri și operatori în virgulă mobilă. Există două tipuri de tipuri cu virgulă mobilă, float și double, care reprezintă numere cu precizie simplă și respectiv dublă. Lățimea și intervalele lor sunt afișate aici:
Lățimea numelui în intervalul de biți
double 64 1 .7e – 308 to 1.7e + 308
float 32 3 .4e – 038 to 3.4e + 038
Fiecare dintre acestea tipurile cu virgulă mobilă sunt examinate în continuare.
float
Tipul float specifică o valoare de precizie simplă care utilizează 32 de biți de stocare. Precizia unică este mai rapidă pe unele procesoare și ocupă jumătate din spațiul de precizie dublu, dar va deveni imprecisă atunci când valorile sunt fie foarte mari, fie foarte mici. Variabilele de tip float sunt utile atunci când aveți nevoie de o componentă fracționată, dar nu necesită un grad mare de precizie. De exemplu, float poate fi util atunci când reprezentați dolari și cenți.
Iată câteva exemple de variabilă float declarații:
float hightemp, lowtemp;
double
Precizia dublă, așa cum este notată de cuvântul cheie dublu, utilizează 64 de biți pentru a stoca o valoare. Precizia dublă este de fapt mai rapidă decât precizia simplă pe unele procesoare moderne care au fost optimizate pentru matematică de mare viteză calcule. Toate funcțiile matematice transcendentale, cum ar fi sin (), cos () și sqrt (), returnează valori duble. Când trebuie să păstrați acuratețea peste multe calcule iterative sau manipulați numere cu valori mari, dublul este cea mai bună alegere .
Iată un program scurt care folosește variabile duble pentru a calcula aria unui cerc:
// Calculează a e zona unui cerc.
class Area {
public static void main (String args []) {
double pi, r, a;
r = 10.8; // raza cercului
pi = 3,1416; // pi, aproximativ
a = pi * r * r; // zona de calcul
System.out.println („Zona cercului este” + a);
}
}
Răspuns
Ca de obicei, depinde . Dimensiunile exacte ale scurtmetrajelor și lungimilor sunt lăsate în sarcina implementatorului compilatorului, care va selecta reprezentări care se potrivesc cel mai bine arhitecturii țintă. Este posibil (dar puțin probabil) ca sizeof(short) == sizeof(int) == sizeof(long)
, ceea ce înseamnă că toate sunt la fel. Singura garanție pe care o aveți este că dimensiunea unui scurt este mai mică sau egală cu dimensiunea unui lung. Pentru dimensiuni exacte, utilizați antetul
; sau pentru a rezuma detaliile urâte, utilizați șablonul std::numeric\_limits
din
.
Raționamente similare se aplică și pentru float și dublu, dar aici este mai probabil ca float
să reprezinte un număr în virgulă mobilă cu o singură precizie (4 octeți) și double
un număr cu virgulă mobilă de precizie dublă (8 octeți).S-a scris prea mult software care presupune IEEE 754, astfel încât scriitorii compilatorilor sunt mai puțin susceptibili să se abată de la reguli.