Wat is het verschil tussen datatypes short int en long int en float dubbel datatype?


Beste antwoord

Verschil Z / w Kort en Lang int

Welnu, het verschil is erg klein, maar kan in sommige gevallen erg belangrijk zijn. Bij het programmeren is het op een na belangrijkste doel (nadat het programma heeft laten doen wat het moet doen) geheugen besparen om het programma zo snel mogelijk te laten draaien. Hier komt uw zoekwoord “lang” om de hoek kijken. Long is een geheel getal, maar geheel getal is niet precies een lang begrip? Er is ook een “kort”. Nu wordt er meestal naar verwezen met int er achter, maar het is niet verplicht. het verschil tussen beide is hun grootte. Afhankelijk van de computer, maar in de meeste gevallen is een “korte” twee bytes, een “lange” is vier bytes en een “int” kan twee of vier bytes zijn. Het is belangrijk in programmas dat u deze declareert kort of lang als u precies weet hoe groot het nummer zal zijn en hoe vaak het zal worden gewijzigd, zodat u zoveel mogelijk geheugen kunt besparen. Nu voor zover het bereik dat afhangt van de grootte van de int of het is twee of vier bytes. Hier is een tabel met verwijzingen naar groottes en waarden.

typegrootte

short int 2 bytes -32.768 tot 32.767

long int 4 bytes -2.147.483.648 tot 2.147.483.647

int (16 bit) 2 bytes -32.768 tot 32.767

int (32 bit) 4 bytes -2.147 , 483.648 tot 2.147.483.647

Verschil Z / w Float en Double

Drijvende-kommagetallen, ook bekend als reëel getallen, worden gebruikt bij het evalueren van uitdrukkingen die fractionele precisie vereisen. Berekeningen zoals vierkantswortel, of transcendentaal zoals sinus en cosinus, resulteren in een waarde waarvan de precisie een type met drijvende komma vereist. Java implementeert de standaard (IEEE-754) set van drijvende-kommatypen en operatoren. Er zijn twee soorten typen met drijvende komma, float en double, die respectievelijk getallen met enkele en dubbele precisie vertegenwoordigen. Hun breedte en bereiken worden hier weergegeven:

Naam Breedte in bitsbereik

dubbel 64 1 .7e-308 tot 1.7e + 308

zwevend 32 3 .4e-038 tot 3.4e + 038

Elk van deze drijvende-kommatypen worden vervolgens onderzocht.

float

Het type float specificeert een waarde met enkele precisie die 32 bits opslagruimte gebruikt. Enkele precisie is bij sommige processors sneller en neemt de helft van de ruimte in beslag als dubbele precisie, maar wordt onnauwkeurig wanneer de waarden erg groot of erg klein zijn. Variabelen van het type float zijn handig wanneer u een fractionele component nodig heeft, maar geen grote mate van precisie vereist. Float kan bijvoorbeeld handig zijn bij het weergeven van dollars en centen.

Hier zijn enkele voorbeelden van float-variabelen declaraties:

float hightemp, lowtemp;

dubbel

Dubbele precisie, zoals aangegeven door het dubbele trefwoord, gebruikt 64 bits om een ​​waarde op te slaan. Dubbele precisie is in feite sneller dan enkele precisie op sommige moderne processors die zijn geoptimaliseerd voor wiskundige berekeningen. Alle transcendentale wiskundige functies, zoals sin (), cos () en sqrt (), retourneren dubbele waarden. Als u de nauwkeurigheid van veel iteratieve berekeningen moet behouden, of als u getallen met grote waarden manipuleert, is dubbel de beste keuze .

Hier is een kort programma dat dubbele variabelen gebruikt om de oppervlakte van een cirkel te berekenen:

// Bereken th e oppervlakte van een cirkel.

class Area {

public static void main (String args []) {

double pi, r, a;

r = 10.8; // straal van cirkel

pi = 3.1416; // pi, ongeveer

a = pi * r * r; // bereken gebied

System.out.println (“Oppervlakte van cirkel is” + a);

}

}

Antwoord

Zoals gewoonlijk, hangt het ervan af . De exacte maten van shorts en longs worden overgelaten aan de compiler-implementator, die representaties zal selecteren die het beste passen bij de doelarchitectuur. Het is mogelijk (maar onwaarschijnlijk) dat sizeof(short) == sizeof(int) == sizeof(long), wat inhoudt dat ze allemaal hetzelfde zijn. De enige garantie die u heeft, is dat de grootte van een short kleiner of gelijk is aan de grootte van een long. Gebruik de koptekst voor exacte formaten; of om de lelijke details te abstraheren, gebruik de std::numeric\_limits -sjabloon van .

Een soortgelijke redenering is van toepassing op float en double, maar hier is het waarschijnlijker dat float een getal met drijvende komma met enkele precisie (4 bytes) zal vertegenwoordigen en double zal zijn een drijvende-kommagetal met dubbele precisie (8 bytes).Er is te veel software geschreven die veronderstelt dat IEEE 754, zodat compilerschrijvers minder snel van de regels afwijken.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *