Article View: pl.comp.lang.pascal
Article #92620Re: Prowokacyjne pytanie
From: Andrzej Grażyński
Date: Sun, 21 Sep 2008 16:50
Date: Sun, 21 Sep 2008 16:50
42 lines
2304 bytes
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-mailReferences:
<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