Mitä eroa on lyhyillä int- ja long int-tietotyypeillä ja float kaksoistietotyypillä?


Paras vastaus

Ero B / w Lyhyt ja pitkä int

Ero on hyvin pieni, mutta voi olla erittäin tärkeä joissakin tapauksissa. Kun ohjelmoidaan toiseksi tärkein tavoite (kun olet saanut ohjelman tekemään sen, mitä sen on tarkoitus), on muistin säästäminen, jotta ohjelma toimii mahdollisimman nopeasti. Tällöin avainsanasi ”pitkä” tulee sisään. Pitkä on kokonaisluku, mutta kokonaisluku ei ole täsmälleen pitkä ymmärtää? On myös ”lyhyt”. Nyt näihin viitataan yleensä int: n jälkeen, mutta sitä ei vaadita. ero niiden välillä on niiden koko. Tietokoneesta riippuen, mutta useimmissa tapauksissa ”lyhyt” on kaksi tavua, ”pitkä” on neljä tavua ja ”int” voi olla kaksi tai neljä tavua. On tärkeää, että ilmoitat sen ohjelmissa lyhyt tai pitkä, jos tiedät tarkalleen kuinka suuri numero tulee olemaan ja kuinka usein sitä muutetaan, jotta voit säästää mahdollisimman paljon muistia. Nyt niin pitkälle kuin alue, joka riippuu int-koosta, onko se on kaksi tai neljä tavua. Tässä on taulukko viitekokoille ja -arvoille.

-tyyppikokoalue

lyhyt int 2 tavua -32 768 – 32 767

pitkä int 4 tavua -2 147 483 648 – 2 147 483 647

int (16 bittiä) 2 tavua -32 768 – 32 767

int (32 bittiä) 4 tavua -2147 , 483 648 – 2 147 483 647

Ero mustavalkoiset kelluvat ja kaksinkertaiset

liukuluvut, tunnetaan myös todellisina numeroita käytetään arvioitaessa murtotarkkuutta vaativia lausekkeita. Esimerkiksi laskelmat, kuten neliöjuuri, tai transsendentaaliset, kuten sini ja kosini, johtavat arvoon, jonka tarkkuus vaatii liukulukutyyppiä. Java toteuttaa standardin (IEEE – 754) liukulukutyypit ja operaattorit. Liukuluvutyyppejä on kahta tyyppiä, kelluva ja kaksinkertainen, jotka edustavat vastaavasti yhden ja kaksitarkkuutta. Niiden leveys ja alueet näkyvät tässä:

Nimen leveys bittialueella

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

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

Jokainen näistä seuraavaksi tutkitaan liukuluku tyyppejä.

kelluva

Tyyppi float määrittää yhden tarkkuuden arvon, joka käyttää 32 bittiä tallennustilaa. Yksittäinen tarkkuus on nopeampi joillakin prosessoreilla ja vie puolet enemmän tilaa kuin kaksoistarkkuus, mutta siitä tulee epätarkka, kun arvot ovat joko hyvin suuria tai hyvin pieniä. Float-tyyppiset muuttujat ovat hyödyllisiä, kun tarvitset murto-osaa, mutta älä vaadi suurta tarkkuutta. Esimerkiksi float voi olla hyödyllinen, kun edustetaan dollareita ja senttejä.

Tässä on joitain esimerkkejä float-muuttujista ilmoitukset:

float hightemp, lowtemp;

kaksinkertainen

Kaksinkertainen tarkkuus, jota merkitään kaksoisavainsanalla, käyttää 64 bittiä arvon tallentamiseen. Kaksoistarkkuus on itse asiassa nopeampi kuin yksi tarkkuus joissakin nykyaikaisissa prosessoreissa, jotka on optimoitu nopeaan matemaattiseen Kaikki transsendenttiset matemaattiset funktiot, kuten sin (), cos () ja sqrt (), tuottavat kaksinkertaiset arvot. Kun sinun on ylläpidettävä tarkkuutta monissa iteratiivisissa laskelmissa tai manipuloit suuria lukuja, kaksinkertainen on paras valinta .

Tässä on lyhyt ohjelma, joka käyttää kaksinkertaisia ​​muuttujia ympyrän alueen laskemiseen:

// Laske th ympyrän alue.

luokan alue {

public static void main (String args []) {

kaksinkertainen pi, r, a;

r = 10,8; // ympyrän säde

pi = 3.1416; // pi, suunnilleen

a = pi * r * r; // laskea alue

System.out.println (”Ympyrän alue on” + a);

}

}

Vastaa

Kuten tavallista, se riippuu . Lyhyiden ja pitkien pitkät koot jätetään kääntäjän toteuttajalle, joka valitsee esitysmuodot, jotka sopivat parhaiten kohdearkkitehtuuriin. On mahdollista (mutta epätodennäköistä), että sizeof(short) == sizeof(int) == sizeof(long), mikä tarkoittaa, että ne ovat kaikki samanlaisia. Ainoa sinulla oleva takuu on, että lyhyen kappaleen koko on pienempi tai yhtä suuri kuin pitkä. Käytä tarkkoja kokoja -otsikossa; tai jos haluat tiivistää rumat yksityiskohdat, käytä std::numeric\_limits -mallia mallista .

Samanlainen perustelu koskee kelluketta ja kaksinkertainen, mutta tässä on todennäköisempää, että float edustaa yhden tarkkuuden liukulukua (4 tavua) ja double kaksitarkka liukuluku (8 tavua).Liian paljon ohjelmistoja on kirjoitettu, mikä edellyttää IEEE 754: ää , joten kääntäjien kirjoittajat eivät todennäköisesti poikkea sääntöistä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *