Wat is een long?
Het long datatype is een numeriek datatype dat bedoeld is voor het opslaan van grotere gehele getallen dan een integer aankan. Een long kan waarden opslaan tussen -9,223,372,036,854,775,808
en 9,223,372,036,854,775,807
en gebruikt 64 bits voor opslag.
Ter vergelijking: een integer gebruikt 32 bits en heeft een veel kleiner bereik, namelijk van -2,147,483,648
tot 2,147,483,647
. Dit maakt een long
geschikt voor situaties waarin je met veel grotere getallen werkt dan een integer aankan.
Casus
Stel je wilt de wereldbevolking opslaan in je programma, omdat je hiermee verdere berekeningen gaat uitvoeren. Hiervoor heb je een datatype nodig dat grote getallen aankan.
Gezien de huidige wereldbevolking meer dan 7.000.000.000 telt, past dit niet in een integer, en heb je dus eenlong
nodig.
Hoe zit een long in elkaar?
Een long is een datatype dat grotere gehele getallen kan opslaan, doordat het gebruik maakt van 64 bits. Dit zorgt voor een extreem groot bereik van zowel negatieve als positieve getallen. Hierdoor is het bijzonder geschikt voor situaties waarin je met getallen werkt die buiten het bereik van een integer vallen.
Codevoorbeeld
long population = 7800000000; // Wereldbevolking in een long variabele
Console.WriteLine("De huidige wereldbevolking is: " + population);
In dit voorbeeld wordt de wereldbevolking opgeslagen in een long
variabele. De waarde is te groot voor een integer, maar past gemakkelijk in een long.
Wat gebeurt er als je probeert hetzelfde getal in een integer te stoppen?
Codevoorbeeld
// Probeer dezelfde waarde in een int te stoppen (directe toewijzing)
int populationInt = 7800000000; // FOUT: waarde is te groot voor een int
Console.WriteLine("De huidige wereldbevolking is: " + populationInt);
Dit voorbeeld geeft een compilerfout:
Cannot implicitly convert type 'long' to 'int'. An explicit conversion exists (are you missing a cast?).
De foutmelding toont dat de waarde niet past binnen de grenzen van een integer.
Hoe gebruik je een long?
Het gebruik van een long
komt voort uit de vraag: “Wat gebeurt er als een geheel getal groter is dan het bereik van een integer?” Het gebruik van een long
stelt het programma in staat om grote gehele getallen op te slaan en ermee te werken, wat leidt tot betrouwbare resultaten bij specifieke toepassingen. Bijvoorbeeld, als je een waarde zoals de wereldbevolking wilt opslaan, die groter is dan het maximale bereik van een integer, gebruik je een long
om deze gegevens correct te verwerken.
Een long
is handig in situaties zoals wetenschappelijke berekeningen, grote datasets of financiële toepassingen. Omdat een long
echter alleen gehele getallen kan opslaan, is het niet geschikt voor decimalen of nauwkeurige berekeningen. Voor getallen met decimalen gebruik je beter een float, double of decimal.
Casus
Stel dat je de totale jaarlijkse verkopen van een groot bedrijf wilt bijhouden. De waarden kunnen in de miljarden liggen, wat buiten het bereik van een integer valt.
Mogelijke uitwerking van de casus
long jaarlijkseVerkopen = 8500000000; // Totale jaarlijkse verkoop in een long variabele
Console.WriteLine("Totale jaarlijkse verkopen zijn: " + jaarlijkseVerkopen + " euro");
Dit voorbeeld laat zien hoe je grote getallen, zoals jaarlijkse verkopen in de miljarden, kunt opslaan met een long
.
Let op!
Wanneer een
long
-waarde het maximum of minimum bereik overschrijdt, kan dit leiden tot overflow of underflow. Bij een overflow begint het getal opnieuw bij de laagste negatieve waarde, en bij een underflow begint het opnieuw bij de hoogste positieve waarde. Zorg er dus voor dat je dergelijke situaties voorkomt door controles in te bouwen of een datatype met een groter bereik, zoals ulong, te gebruiken.
Volgende stap: Oefeningen long