Vejr & Vestkystløb?

Hvorfor er det lidt lige som om, at vejret tager pis på Vestkystløbet i år? :P

Skrevet den June 12, 2010 klokken 8:57 pm af Thoha · Permalink · Smid en kommentar
Under: Uncategorized

short, int, long, BigInteger!

Efter ca. 14 dages forsinkelse modtog jeg i onsdags endelig bogen “Introduction to .NET 4 with Visual Studio” :) Efter at have kigget de første par kapitler igennem og fundet ud af, at dette er en bog som man skal skimme, og læse når man finder noget interessant, fandt jeg en interessant lille klasse som jeg dog endnu ikke helt har gættet hvad jeg skal bruge til.

int start = 1;
while (start > 0) System.Diagnostics.Debug.WriteLine(start *= 2);

Hvis du afvikler ovenstående kode vil du med 100 % sandsynlighed få udskrevet 31 tal i output vinduet, hvor det sidste tal vil være negativt, fordi du har overskrevet Int32s maksimalle værdi på 2147483647. Tidligere var det sådan, at hvis du havde bruge for en større heltalsværdi end 2.147.483.648 så måtte du tage long typen i brug, for på den måde at få en øvre grænse på 9.223.372.036.854.775.807. Hvis du også følte at denne grænse var for lidt til dig, måtte du ganske enkelt finde dig en anden hobby.

Men med .NET 4.0 er der altså nu håb for folk med en lidt for stor bankkonto (eller gæld for den sags skyld). For her kommer BigInteger klassen:

BigInteger start = 1;
while (start > 0) System.Diagnostics.Debug.WriteLine(start *= 2);

Og hvor mange tal får du så udskrevet før programmet er færdig? Det kommer helt an på hvor meget din computer kan klare, for denne datatype har ingen fastsatte øvre og nedre værdier. Ovenstående kodestump vil køre ind til der ikke kan allokeres mere hukommelse, og derefter smide en OutOfMemoryException.

Min PC har nu stået og kørt følgende kode i 3½ time:

BigInteger start = 2;
while (start > 0) System.Diagnostics.Debug.WriteLine(start = BigInteger.Pow(start, 2));

og jeg har stadig ikke fået en OutOfMemoryException – beregningen tager ret lang tid nu, men maskinen arbejder på højtryk :P Så nu har du i hvert fald en idé om hvad du skal gøre hvis du skal bruge meget store tal i din programmering.

Skrevet den May 17, 2010 klokken 12:25 am af Thoha · Permalink · Smid en kommentar
Under: .NET