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.