Hallo!
Hab wieder eine Basic Frage. Ich hab hier ein Programm, dass vor ca. 15 - 20 Jahren in Basic geschrieben wurden. Damit wurden Berechnungen durchgeführt.
Weiß jemand wie genau Basic rechnete? Auf wie viele Kommastellen?
Danke u. lG, Tom
Hallo!
Hab wieder eine Basic Frage. Ich hab hier ein Programm, dass vor ca. 15 - 20 Jahren in Basic geschrieben wurden. Damit wurden Berechnungen durchgeführt.
Weiß jemand wie genau Basic rechnete? Auf wie viele Kommastellen?
Danke u. lG, Tom
Hallo!
Hab wieder eine Basic Frage. Ich hab hier ein Programm, dass
vor ca. 15 - 20 Jahren in Basic geschrieben wurden. Damit
wurden Berechnungen durchgeführt.
Weiß jemand wie genau Basic rechnete? Auf wie viele
Kommastellen?
Das kommt darauf an, ob Du als Datentyp für die Berechnung
‚real‘ (32bit/4Byte) oder ‚double‘ (64bit/8Byte) verwendet hast.
Auf den alten x86-Rechnern wurde aber intern sogar mit 80bit
gerechnet (Breite der 8087-Koprozessorregister). Ein
altes Basic-Programm, das auf einem alten i386/387
läuft, rechtet demnach u.U. intern erheblich „genauer“
als das selbe Programm auf einem IBM-Grossrechner in
64bit-double
http://www.scit.wlv.ac.uk/cbook/chap4.float.html
Also:
real -> 7 Stellen (Standard in Power/Q-Basic)
double -> 15 Stellen
long double -> 19 Stellen
Siehe auch:
BASIC FORTRAN PASCAL C
Zeichen A$ character\*1 char char
Zeichenkette A$ character\*(\*) string[] char \*
Ganzzahl A% integer\*2 integer int
Lange Ganzzahl A& integer\*4 longint long
Fließkommazahl A! real\*4 single float
doppelt genau A# real\*8 double double
logisch -- logical boolean --
(http://www.chemie.fu-berlin.de/lehre/edv/comchem1-3…)
Grüße
CMБ
Das kommt darauf an, ob Du als Datentyp für die Berechnung
‚real‘ (32bit/4Byte) oder ‚double‘ (64bit/8Byte) verwendet
hast.
Das weiß ich eben nicht (hab nicht ich programmiert).
Zeichen A$ character*1 char char
Zeichenkette A$ character*(*) string[] char *
Ganzzahl A% integer*2 integer int
Lange Ganzzahl A& integer*4 longint long
Fließkommazahl A! real*4 single float
doppelt genau A# real*8 double double
logisch – logical boolean
Bei den Variablen die ich hier hab, steht hinten nichts dran. Also z.B. s=b/q …
Was wird denn da automatisch festgelegt?
Hallo Tom,
Hab wieder eine Basic Frage. Ich hab hier ein Programm, dass
vor ca. 15 - 20 Jahren in Basic geschrieben wurden. Damit
wurden Berechnungen durchgeführt.
Weiß jemand wie genau Basic rechnete? Auf wie viele
Kommastellen?
Unter CP/M gab es QBASIC. Dieses rechnete mit BCD und 14 Stellen.
Das alter ist kein Kriterium, du müsstest schon angeben welches BASIC benutzt wurde.
MfG Peter(TOO)
Hallo Tom,
Ergänzung zum bereits Gesagten: BASIC80 von Microsoft für CP/M hatte schon Real (mit !) und Double (mit #) wie heute mit 4Byte bzw. 8Byte und dementsprechend ca. 7 oder 16 Stellen Genauigkeit. Diese Zahlen- Darstellungen sind übrigens genormt und wurden/werden von vielen Compilern verwendet.
BASIC80/BASCOM mit M80 und L80 war eines der letzten wirklich guten Programme von Microsoft (1981) und praktisch fehlerfrei.
Gruss Reinhard
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]