Bug bei Stringfunktion BIN$?
A BASIC interpreter and compiler with graphics.
Brought to you by:
kollo
Hallo,
zunächst herzlichen Dank für die tolle Arbeit! Derzeit verwende ich V1.27 (ich denke, das ist die neueste Version) auf Win7 Prof. (64Bit).
Nach langem Grübeln bin ich wohl auf einen Bug bei dem Befehl bin$ gestossen. Diese Funktion gibt bei einigen Werten nicht das richtige Ergebnis zurück. So liefert z.B. bin$(8) '100', was aber nur 4 anstatt 8 ist, ein Aufruf mit 64 ergibt 32 und bei 128 kommt 64 raus. Anbei eine kurze Testdatei:
open "O",#1,"R:testb.txt" ? #1,"dez","hex","bin" for i%=0 to 255 if val("%"+bin$(i%))<>i% then ? #1,i%,hex$(i%,2),bin$(i%,8) endif next i% close #1
Mit dem Ergebnis:
dez hex bin 8 08 00000100 64 40 00100000 128 80 01000000
Ich hoffe, das ist bei Euch so reproduzierbar.
Viele Grüße
Hartmut Schott
Hallo Hartmut, Danke für das Feedback. Das ist ja ein Ding. Offenbar wird die letze Ziffer abgeschnitten. Aber ich habe versucht, das mal auf die Schnelle zu reproduzieren (hier auf meinem Linux-System), da ist zumindest alles in Ordnung.
Hab gerade Dein Programm laufen lassen. Offenbar auch alles in Ordnung.
Dann muss es ein spezifisches WINDOWS Problem sein.
Ja, stimmt. Mit dem WIndows-Emulator (wine) kann ich es reproduzieren. Seltsam!
Ich habe den Fehler mal in unser Bug-Tracking auf codeberg mit aufgenommen. (Ich hoffe, das ist so i.O. für Dich) Die Haupt-Code-Entwicklung geschieht inzwischen nicht mehr auf Sourceforgse sondern dort.
https://codeberg.org/kollo/X11Basic/issues/6
Last edit: Markus Hoffmann 2022-01-03