🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.programming
3 messages
3 total messages Started by szer... Thu, 02 Nov 1995 00:00
Real - Pascal
#9
Author: szer...
Date: Thu, 02 Nov 1995 00:00
71 lines
2932 bytes
Witam czytaczy news`ow!!!    ;-))

Ciesze sie, ze moje pytanie nie pozostalo bez odzewu.

Czesc problemu zdolalem juz rozwiazac.Tzn. udalo mi sie ustalic jak zbudowany
jest ten typ w Pascalu. I wyszlo mi cos innego niz zaproponowal p. Adam Glowacki.

Oto moj opis Pascalowego Real`a. ;-)

- sklada sie z 6-ciu Bajtow
- w pliku poszczegolne bajty zapisywane sa w odwrotnej kolejnosci
- Pascal przy operacjach na tym typie przechowuje go w rejestrach
DX,BX,AX - pierwsza liczba i DI,SI,CX - druga liczba (o ile wystepuje);

wyglad real`a w "pamieci" (rejestrach procesora):

1 39                                        0 7               0

z                 mantysa                       wykladnik    

wykladnik zapisany jest na jednym bajcie;
mantysa na pieciu w tym na 39-tym bicie jest zapisany znak liczby

wartosc liczby tak zapisanej mozna wyznaczy ze wzoru

wynik:=(-1)^znak * M * W

gdzie:

W:=2^(wykladnik - 128)		;wykladnik wartosc bajtu (dziesietnie)

M:=1/2 + m[38] * 1/4 + m[37] * 1/8 + ... + m[0] * 1/(2^40)
;m[a] wartosc bitu na pozycji a

Uwaga!
Wartosc 0 jest zapisana, gdy mantysa i wykladnik skladaja sie z samych zer.

roznica polega na tym, ze ja od wykladnika odejmuje 128 (a nie 129) oraz 
wartosc domysla od ktorej zaczynamy zliczanie mantysy to 1/2 (a nie 1)

Ktory z tych opisow jest poprawny bede musial sprawdzic.

W ramach wyjasnienia nieszczesnej liczby "binarnej".
Chodzi o taki sposob przekonertowania okrojonego real`a, aby zapisac go
w taki sposob, by dla kolejnych liczb nastepowala zmiana tylko na jednym bicie.
przyklad: 
dla liczb calkowitych
000 0
001 1
011 2
010 3
itd.

Tego typu kodowanie liczb zaproponowal Grey i dlatego sie do niego odwolalem.

Odpowidajac na pytanie dotyczace sensownosci "rozgryzania" real`a w erze 
koprocesorow i jego zamiany to musze wyjasnic, ze wynika to ze specyfiki 
tworzonego programu. Sklada sie on z nastepujacych czesci.
1 - sieci neuronowej operujacej na typie real (ulubiona reprezentacja wag)
2 - programu genetycznego (PG) uczacego siec (lubiacy operowac na bitach).
Co z tego wynika? Otoz jezeli pozwolimy PG operowac na typie real (lub podobnym)
to zmiana jednego bitu moze spowodowac ogromna zmiane liczby (np. bity w 
wykladniku). Dlatego instnieje koniecznosc innej reprezentacji liczby, tak aby 
zmiana bitu powodowala jedynie mala zmiane liczby.

Mam nadzieje, ze tym razem jest wszystko jasne :-))). Jesli nie, to prosze o 
kolejne pytania.

______________________________________________________________________________
e-mail: 
szer...@ci-1.ci.pwr.wroc.pl
Re: Real - Pascal
#10
Author: Adam Glowacki
Date: Thu, 02 Nov 1995 00:00
3 lines
564 bytes
oba zapisy liczby real sa poprawne (tzn tozsame)!

Adam :-)
Re: Real - Pascal
#11
Author: l... Jarek Lis
Date: Thu, 02 Nov 1995 00:00
21 lines
1457 bytes
Adam Glowacki (ad...@ibm530.chemie.th-merseburg.de) wrote:
: oba zapisy liczby real sa poprawne (tzn tozsame)!	

Zaraz, o jakich zapisach Ty piszesz? 4-ro i 6-cio bajtowym? Tozsame?

Dawno, dawno temu, Borland wiedzac ze koprocesory sa drogie, a ich
emulatory powolne, wymyslil wlasna biblioteke zmienno-przecinkowa,
wprowadzajac typ real, 6-cio bajtowy. Kierunek projektu byl taki,
zeby operacje dalo sie zrealizowac jak najszybciej.
Bodajze jesli program jest kompilowany na koprocesor i emulator,
to zamiast typ real jest zastepowany koprocesorowym typem single (4-ro
bajtowym).
Ale tozsame real z single nie sa.

Jaroslaw Lis

+------------------------------------------------------------------------+
| l...@ict.pwr.wroc.pl         | Institute of Engineering Cybernetics     |
| tel  48-71-202636           | Technical University of Wroclaw, Poland  |
| fax  48-71-203408 or 517398 |                                          |
+------------------------------------------------------------------------+
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads