Vad är skillnaden mellan korta int och långa int datatyper och flyta dubbel datatyp?


Bästa svaret

Skillnad svartvitt kort och lång int

Skillnaden är väldigt liten men kan vara mycket viktig i vissa fall. När du programmerar det näst viktigaste målet (efter att programmet gör vad det ska) är att spara minne så att programmet körs så snabbt som möjligt. Det är här ditt nyckelord ”lång” kommer in. Långt är ett heltal men heltal är inte exakt en lång förståelse? Det finns också en ”kort”. Nu refereras vanligtvis till dessa med int efter dem men det krävs inte. skillnaden mellan dem är deras storlek. Beroende på dator men i de flesta fall är en ”kort” två byte en ”lång” är fyra byte och en ”int” kan vara två eller fyra byte. Det är viktigt i program att du förklarar det kort eller lång om du vet exakt hur stort numret kommer att bli och hur ofta det kommer att modifieras så att du kan spara så mycket minne som möjligt. Nu så långt som det intervall som beror på storleken på intet om det är två eller fyra byte. Här är en tabell för referensstorlekar och värden.

typstorlek

kort int 2 byte -32,768 till 32,767

lång int 4 byte -2,147,483,648 till 2,147,483,647

int (16 bitar) 2 byte -32,768 till 32,767

int (32 bitar) 4 byte -2,147 , 483,648 till 2147,483,647

Skillnad svartvitt flytande och dubbelt

Flytpunktsnummer, även känd som riktiga siffror används vid utvärdering av uttryck som kräver bråkprecision. Beräkningar som kvadratrot eller transcendental som sinus och cosinus resulterar till exempel i ett värde vars precision kräver en flytpunkt. Java implementerar standarduppsättningen (IEEE – 754) av flytande punkttyper och operatörer. Det finns två typer av flytpunkttyper, float och double, som representerar enkel- och dubbelprecisionsnummer. Deras bredd och intervall visas här:

Namnbredd i bitintervall

double 64 1 .7e – 308 to 1.7e + 308

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

Var och en av dessa flytande punkttyper undersöks därefter.

float

Typflottan anger ett enda precisionsvärde som använder 32 bitars lagring. Enkel precision är snabbare på vissa processorer och tar hälften så mycket utrymme som dubbel precision, men blir exakt när värdena är antingen mycket stora eller mycket små. Variabler av typen float är användbara när du behöver en delkomponent, men kräver inte stor grad av precision. Till exempel kan float vara användbart när du representerar dollar och cent.

Här är några exempel på floatvariabler deklarationer:

float hightemp, lowtemp;

double

Dubbel precision, som betecknas med det dubbla nyckelordet, använder 64 bitar för att lagra ett värde. Dubbel precision är faktiskt snabbare än enstaka precision på vissa moderna processorer som har optimerats för matematik med hög hastighet beräkningar. Alla transcendentala matematiska funktioner, som sin (), cos () och sqrt (), returnerar dubbla värden. När du behöver behålla noggrannhet över många iterativa beräkningar eller manipulerar stora värden är dubbelt det bästa valet .

Här är ett kort program som använder dubbla variabler för att beräkna en cirkels area:

// Beräkna th område av en cirkel.

klass Område {

offentligt statiskt tomrum huvud (String args []) {

dubbel pi, r, a;

r = 10,8; // cirkelradie

pi = 3.1416; // pi, ungefär

a = pi * r * r; // beräkningsområde

System.out.println (”Cirkelområdet är” + a);

}

}

Svar

Som vanligt beror det på . Den exakta storleken på shorts och längder lämnas till kompilatorns implementerare, som väljer representationer som bäst passar målarkitekturen. Det är möjligt (men osannolikt) att sizeof(short) == sizeof(int) == sizeof(long), vilket betyder att de alla är desamma. Den enda garantin du har är att storleken på en kort är mindre än eller lika med storleken på en lång. För exakta storlekar, använd rubriken; eller för att ta bort de fula detaljerna, använd std::numeric\_limits -mallen från .

Liknande resonemang gäller för float och dubbelt, men här är det mer troligt att float representerar ett enda precisions flytpunkt (4 byte) och double ett flytande punktnummer med dubbel precision (8 byte).För mycket programvara har skrivits som antar IEEE 754, så kompilatorförfattare är mindre benägna att avvika från reglerna.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *