De unsigned long (of een ulong) is een datatype dat alleen positieve gehele getallen kan opslaan. Het bereik van ulong loopt van 0 tot 18,446,744,073,709,551,615. Omdat ulong geen negatieve waarden kan bevatten, is het vooral handig wanneer je zeker weet dat je uitsluitend met positieve, grote getallen werkt.
Als je echter de negatieve - operator gebruikt op een ulong-expressie, zal dit leiden tot een fout, omdat ulong geen negatieve waarden accepteert. Dit betekent dat negatieve getallen buiten het bereik van een ulong vallen en niet correct verwerkt kunnen worden.
Codevoorbeeld
ulong fileSize = 15000000000; // Bestandsgrootte in bytesConsole.WriteLine("De grootte van het bestand is: " + fileSize + " bytes");
Hoe zit een ulong in elkaar?
Een ulong is een 64-bits datatype dat grotere positieve gehele getallen kan opslaan dan bijvoorbeeld een uint. Dit maakt het geschikt voor toepassingen waarbij extreem grote, positieve getallen nodig zijn. Omdat ulong geen negatieve waarden kan bevatten, wordt dit datatype vaak gebruikt in scenario’s waarbij negatieve getallen nooit logisch zouden zijn, zoals bij bestand groottes of andere tellers.
Codevoorbeeld
ulong maxBestandsgrootte = 18446744073709551615; // Maximale waarde voor ulongConsole.WriteLine("De maximale bestandsgrootte is: " + maxBestandsgrootte + " bytes");
Hoe gebruik je een ulong?
Een ulong gebruik je wanneer je positieve gehele getallen wil opslaan, die groter zijn dan het bereik van een uint en een long. Dit datatype is handig in situaties waar grote positieve waarden nodig zijn, zoals bij geheugenbeheer, bestandsformaten of andere technische toepassingen. Omdat een ulong geen negatieve waarden kan opslaan, is het niet geschikt voor toepassingen waar negatieve getallen mogelijk zijn. Voor werk met getallen die decimalen bevatten, kun je beter float, double of decimal gebruiken.
Casus
Stel dat je de totale omvang van alle bestanden op een groot opslagapparaat wilt bijhouden. Je hebt hiervoor mogelijke getallen in de biljoenen bytes nodig, die buiten het bereik van een uint of long vallen.
Mogelijke uitwerking van de casus
ulong totaleOpslaggrootte = 45000000000000; // Totale opslaggrootte in een ulong variabeleConsole.WriteLine("Totale opslaggrootte is: " + totaleOpslaggrootte + " bytes");
Dit voorbeeld laat zien hoe je zeer grote, positieve getallen, zoals opslaggroottes in bytes, kunt opslaan met een ulong.
Let op!
Wanneer een ulong-waarde het maximum bereik overschrijdt, kan dit leiden tot een overflow. Hoewel een ulong geen negatieve waarden kan aannemen, begint het bij een overflow opnieuw bij 0. Dit kan onbedoelde gevolgen hebben, dus zorg ervoor dat je dergelijke situaties voorkomt.