Hva er forskjellen mellom korte int- og lange int-datatyper og float dobbel datatype?


Beste svaret

Forskjell svart / hvitt kort og langt int

Vel, forskjellen er veldig liten, men kan være veldig viktig i noen tilfeller. Når du programmerer det nest viktigste målet (etter at programmet har gjort det det skal), er det å lagre minne for å få programmet til å kjøre så raskt som mulig. Det er her nøkkelordet ditt «lang» kommer inn. Langt er et heltall, men heltall er ikke nøyaktig lenge. Det er også et «kort». Nå refereres det vanligvis til int etter dem, men det er ikke nødvendig. forskjellen mellom dem er deres størrelse. Avhengig av datamaskin, men i de fleste tilfeller er en «kort» to byte, en «lang» er fire byte og en «int» kan være to eller fire byte. Det er viktig i programmer at du erklærer det kort eller lenge hvis du vet nøyaktig hvor stort tallet kommer til å bli og hvor ofte det skal modifiseres slik at du kan spare så mye minne som mulig. Nå så langt som området som avhenger av størrelsen på intet om det er to eller fire byte. Her er en tabell for referansestørrelser og verdier.

type størrelsesområde

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

lang int 4 byte -2,147,483,648 til 2,147,483,647

int (16 bit) 2 byte -32,768 til 32,767

int (32 bit) 4 byte -2,147 , 483,648 til 2,147,483,647

Forskjell svart / hvitt flyt og dobbelt

Flytpunkttall, også kjent som reell tall, brukes når man vurderer uttrykk som krever brøkpresisjon. For eksempel resulterer beregninger som kvadratrot, eller transcendentale som sinus og cosinus, i en verdi hvis presisjon krever flytende punkt. Java implementerer standardsett (IEEE – 754) med flytende punkttyper og operatører. Det er to typer flytende punkttyper, float og double, som representerer henholdsvis enkelt- og dobbelt-presisjonstall. Bredden og områdene deres vises her:

Navnbredde i bitrekkevidde

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

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

Hver av disse flytende punkttyper undersøkes neste gang.

float

Type float spesifiserer en enkelt-presisjonsverdi som bruker 32 bits lagring. Enkel presisjon er raskere på noen prosessorer og tar halvparten så mye plass som dobbel presisjon, men blir upresis når verdiene enten er veldig store eller veldig små. Variabler av typen float er nyttige når du trenger en brøkdel, men trenger ikke stor presisjon. For eksempel kan float være nyttig når du representerer dollar og øre.

Her er noen eksempler på floatvariabler erklæringer:

float hightemp, lowtemp;

double

Dobbelt presisjon, som betegnet med det dobbelte nøkkelordet, bruker 64 bits for å lagre en verdi. Dobbelt presisjon er faktisk raskere enn enkelt presisjon på noen moderne prosessorer som er optimalisert for høyhastighets matematisk beregninger. Alle transcendentale matematiske funksjoner, for eksempel sin (), cos () og sqrt (), returnerer doble verdier. Når du trenger å opprettholde nøyaktighet over mange iterative beregninger, eller manipulerer store verdier, er dobbelt det beste valget .

Her er et kort program som bruker doble variabler for å beregne området til en sirkel:

// Beregn th område av en sirkel.

klasse Område {

offentlig statisk ugyldig hoved (String args []) {

dobbelt pi, r, a;

r = 10,8; // sirkelradius

pi = 3.1416; // pi, omtrent

a = pi * r * r; // beregningsområde

System.out.println («Sirkelområdet er» + a);

}

}

Svar

Som vanlig, det kommer an på . De nøyaktige størrelsene på shorts og lengder overlates til kompilatorimplementøren, som velger representasjoner som passer best til målarkitekturen. Det er mulig (men usannsynlig) at sizeof(short) == sizeof(int) == sizeof(long), noe som betyr at de alle er de samme. Den eneste garantien du har er at størrelsen på en shorts er mindre enn eller lik størrelsen på en lang. For nøyaktige størrelser, bruk header; eller for å trekke ut de stygge detaljene, bruk std::numeric\_limits malen fra .

Lignende resonnement gjelder float og dobbelt, men her er det mer sannsynlig at float vil representere et flytende-punktnummer med én presisjon (4 byte) og double et flytende punktnummer med dobbelt presisjon (8 byte).Det er skrevet for mye programvare som antar IEEE 754, så det er mindre sannsynlig at kompilatorforfattere avviker fra reglene.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *