🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #92620

Re: Prowokacyjne pytanie

#92620
From: Andrzej Grażyński
Date: Sun, 21 Sep 2008 16:50
42 lines
2304 bytes
Łukasz 'Maly' Ostrowski pisze:
> Andrzej Grażyński wrote:
>>> Czyli mówiąc wprost - bo reprezentacja comp jest bardzo
>>> zbliżona do typów zmiennoprzecinkowych, znak, mantysa
>>> i wykładnik ;).
>>>
>>
>> Comp NIE jest złozony ze znaku, mantysy i wykładnika. Jest 64-bitowym
>> integerem zapisywanym w uzupełnieniu do 2. W przeciwieństwie do
>> Single, Double i Extended, gdzie znak, wykładnik i mantysa są ściśle
>> rozdzielone.
> 
> 
> Argh, nie doczytałem całości artykułu.
> 
> W takim razie przychylam sie do wersji Kicera. Z drugiej strony nie wiem
> jak są wykonywane te obliczenia, konwersja na real'a, użycie FPU,
> konwersja i obcięcie spowrotem do 64 bitów integerowych ;)?
> 

Obliczenia wykonywane są w stałoprzecinkowej arytmetyce 64-bitowej. 
Oczywiście w rejestrach koprocesora wszystkie dane przechowywane są w 
formacie Extended i konwersja, o której piszesz faktycznie zachodzi, ale 
użytkownik nie musi o tym wiedzieć, bo używa instrukcji 
STAŁOPRZECINKOWYCH. Poniższa funkcja wylicza resztę z dzielenia dwóch 
Comp'ów:

{ BP 7 }
Function CompModulo(C1,C2:Comp):Comp;
var
   C3, C4: Comp;
begin
   asm
     fild C2
     fild C1
     fprem
     fistp C3
     fistp C4
     fwait
   end;
   CompModulo := C3;
end;
Technical Details
Message-ID: <gb5u17$icj$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
References: <20080905121945.03f2cdf2.solaris@be.inspired> <garm5g$sqo$1@news.onet.pl> <gatob2$9v2$1@news.dialog.net.pl> <gb10qb$189$1@news.onet.pl> <gb1r5u$t8t$1@news.dialog.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
From: Andrzej Grażyński <grazynsk@petex.com.pl>
Newsgroups: pl.comp.lang.pascal
Subject: Re: Prowokacyjne pytanie
Date: Sun, 21 Sep 2008 18:50:41 +0200
Organization: Onet.pl
Lines: 42
Message-ID: <gb5u17$icj$1@news.onet.pl>
References: <20080905121945.03f2cdf2.solaris@be.inspired> <garm5g$sqo$1@news.onet.pl> <gatob2$9v2$1@news.dialog.net.pl> <gb10qb$189$1@news.onet.pl> <gb1r5u$t8t$1@news.dialog.net.pl>
NNTP-Posting-Host: 83-238-237-192.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1222015847 18835 83.238.237.192 (21 Sep 2008 16:50:47 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Sun, 21 Sep 2008 16:50:47 +0000 (UTC)
X-Sender: 2ysppuKZfnIJFd8Xm5/5BA==
In-Reply-To: <gb1r5u$t8t$1@news.dialog.net.pl>
User-Agent: Thunderbird 2.0.0.16 (Windows/20080708)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit