Mi a különbség a rövid int és a hosszú int adattípusok és a lebegő kettős adattípus között?


Legjobb válasz

Különbség B / w Rövid és Hosszú int

Nos, a különbség nagyon kicsi, de egyes esetekben nagyon fontos lehet. A második legfontosabb cél programozásakor (miután a programot megtette annak, amit kellett) a memória megtakarítása, hogy a program a lehető leggyorsabban futhasson. Itt jön be a “long” kulcsszó. A long egy egész szám, de az egész nem pontosan értendő? Van egy “rövid” is. Most ezekre általában utólag int hivatkozunk, de nem szükséges. A különbség közöttük a méretük. A számítógéptől függően, de a legtöbb esetben a “rövid” két, a “hosszú” négy, az “int” pedig két vagy négy bájtos lehet. A programokban fontos, hogy ezt deklarálja rövid vagy hosszú, ha pontosan tudja, hogy mekkora lesz a szám, és milyen gyakran módosul, hogy minél több memóriát spórolhasson meg. Most már az int méretétől függő tartományig két vagy négy bájt. Itt egy táblázat a referenciaméretekhez és értékekhez.

típusmérettartomány

rövid int 2 bájt -32 768 – 32 767

hosszú int 4 bájt -2 147 483 648 – 2 147 483 647

int (16 bites) 2 bájt -32 768 – 32 767

int (32 bites) 4 bájt -2 147 , 483 648 – 2 147 483 647

Különbség a fekete-fehér úszó és dupla

Lebegőpontos számok, más néven valós számokat használjuk a töredék pontosságot igénylő kifejezések kiértékelésénél. Például olyan számítások, mint a négyzetgyök, vagy a transzcendentális, mint a szinusz és a koszinusz, olyan értéket eredményeznek, amelynek pontossága lebegőpontos típust igényel. A Java lebegőpontos típusok és operátorok szabványos (IEEE – 754) halmazát valósítja meg. Kétféle lebegőpontos típus létezik, úszó és kettős, amelyek egy-, illetve kettős pontosságú számokat képviselnek. Szélességüket és tartományukat itt mutatják:

Névszélesség bit tartományban

dupla 64 1 .7e – 308 – 1.7e + 308

32 float 3 .4e – 038 – 3.4e + 038

Ezek mindegyike legközelebb lebegőpontos típusokat vizsgálunk.

lebegő

A float típus megad egy precíziós értéket, amely 32 bit tárhelyet használ. Egyes processzoroknál az egyetlen pontosság gyorsabb, és fele annyi helyet foglal el, mint a kettős pontosság, de pontatlanná válik, ha az értékek vagy nagyon nagyok, vagy nagyon kicsiek. Az úszó típusú változók akkor hasznosak, ha töredékkomponensre van szükség, de nem igényel nagyfokú pontosságot. Például az úszó hasznos lehet dollár és cent ábrázolásakor.

Íme néhány példa az úszó változóra nyilatkozatok:

float hightemp, lowtemp;

double

A kettős pontosság, amelyet a kettős kulcsszó jelöl, 64 bitet használ az érték tárolásához. A kettős pontosság gyorsabb, mint az egy pontosság néhány modern processzoron, amelyet nagysebességű matematikai célokra optimalizáltak Számítások. Minden transzcendentális matematikai függvény, mint például a sin (), cos () és az sqrt (), kettős értéket ad vissza. Ha sok iteratív számítás során meg kell őriznie a pontosságot, vagy ha nagy értékű számokat manipulál, akkor a legjobb a kettős .

Itt egy rövid program, amely dupla változóval számítja ki a kör területét:

// Számítsa ki a th egy kör területe.

osztályterület {

public static void main (String args []) {

dupla pi, r, a;

r = 10,8; // kör sugara

pi = 3,1416; // pi, körülbelül

a = pi * r * r; // terület kiszámítása

System.out.println (“A kör területe” + a);

}

}

Válasz

Szokás szerint ez függ . A rövid és hosszú hosszúság pontos mérete a fordító megvalósítójának marad, aki kiválasztja a célarchitektúrának leginkább megfelelő ábrázolásokat. Lehetséges (de valószínűtlen), hogy sizeof(short) == sizeof(int) == sizeof(long), vagyis mindegyik egyforma. Az egyetlen garancia arra van, hogy a short mérete kisebb vagy egyenlő a hosszú méretével. A pontos méretekhez használja a fejlécet; vagy a csúnya részletek elvonatkoztatásához használja a std::numeric\_limits sablont a sablonból.

Hasonló érvelés vonatkozik a lebegő és kettős, de itt valószínűbb, hogy a float egyetlen pontosságú lebegőpontos számot (4 bájt) képvisel, és double kettős pontosságú lebegőpontos szám (8 bájt).Túl sok olyan szoftvert írtak, amely az IEEE 754 feltételeket feltételezi , így a fordító írói kevésbé hajlandók eltérni a szabályoktól.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük