🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #13209

Re: newbie Java vraag ivm wiskundige functies

#13209
From: Pastoor Walter
Date: Sun, 19 Aug 2001 20:48
53 lines
2906 bytes
Op 19 aug 2001 schreef Joris Janssens:

> Voor een mens is het oneindige lus, maar computers zijn iets minder
> nauwkeurig als het op berekeningen aankomt met getallen met een
> vlottende komma. Na 64 keer de lus doorlopen te hebben zal voor de
> computer (x+1) gelijk zijn aan x (in Delphi, voor Visual Basic en Java
> is het al na 53 keer).

Met welke taal / datatype / op welk systeem haal je dan 64 ?

> 
> Dit is de waarde voor x waarbij x=x+1
> 1,84467440737095516E+19

oftewel 2 ^ 64 (da leest makkelijker :-)

> 
> Iemand met verstand van datatypes kan je dit allicht uitgebreider en
> meer in detail uitleggen...
> 

(Nu gaan we kijken of die cursussen aritmetiek bij mij opgebracht hebben)

Floating point getallen bestaan uit een mantisse en een exponent (mantisse 
is het kommagedeelte, exponent spreekt voor zich)

Volgens de floating point normalisatie regels ziet het getal er dan zo uit

Mantisse = 1, Exponent = 64 (exponent basis is 2)
nu wil je bij dit getal 1 toevoegen dus dat is ...

Mantisse = 1, Exponent = 0

maar oeps ... om 2 getallen te kunnen optellen moeten ze dezelfde exponent 
hebben, dus we doen een aanpassing aaan het kleinste getal (we trachten het 
te herschrijven), en we shiften de Mantisse (64 bits) naar achter
dus

M = 0.0000000000000......001 (63 nullen) Exponent = 64
(Dus eigenlijk hetzelfde getal, maar in een andere voorstelling)

Maar helaas wat gaat er fout ? Voor de mantisse hebben we maar 64 / 53 bits 
en dus ... 1 bit te weinig om het getal met de gegeven precisie te kunnen 
voorstellen.
Conclusie in mensentaal: de computer kiepert die 1 weg omdat het ander 
getal simpelweg te groot is.

Ziezo, diegenen die nog wakker zijn mogen controleren of het juist is ;-)

-- 
PW

Vrede op aarde aan allen van goede wil.
Technical Details
Message-ID: <Xns9102E82E8809pastoorwalter@195.130.132.65>
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <OwDe7.1310$6x5.420398@afrodite.telenet-ops.be> <9ln7d7$6kd$1@news.planetinternet.be> <aRUf7.6962$6x5.1970728@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,2c00ebb7e553e354
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-08-19 13:48:43 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
Newsgroups: be.comp.programming
Subject: Re: newbie Java vraag ivm wiskundige functies
From: Pastoor Walter <pleaseusethe@replyto.address>
References: <OwDe7.1310$6x5.420398@afrodite.telenet-ops.be> <9ln7d7$6kd$1@news.planetinternet.be> <aRUf7.6962$6x5.1970728@afrodite.telenet-ops.be>
Organization: Telenjet ??
Message-ID: <Xns9102E82E8809pastoorwalter@195.130.132.65>
User-Agent: Xnews/4.06.22
X-Microsoft: sucks
X-BillGates: is an asshole
Reply-To: pastoorwalter@hotmail.com
Lines: 53
Date: Sun, 19 Aug 2001 20:48:40 GMT
NNTP-Posting-Host: 213.224.153.28
X-Complaints-To: abuse@pandora.be
X-Trace: afrodite.telenet-ops.be 998254120 213.224.153.28 (Sun, 19 Aug 2001 22:48:40 MET DST)
NNTP-Posting-Date: Sun, 19 Aug 2001 22:48:40 MET DST