Menu

#19 Bug bei Stringfunktion BIN$?

V.1.22
unread
nobody
None
5
2022-01-03
2022-01-03
No

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

Discussion

  • Markus Hoffmann

    Markus Hoffmann - 2022-01-03

    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.

    print bin$(8)
    1000
    print bin$(4)
    100
    print bin$(8,8)
    00001000

     
  • Markus Hoffmann

    Markus Hoffmann - 2022-01-03

    Hab gerade Dein Programm laufen lassen. Offenbar auch alles in Ordnung.

    > xbasic test.bas
    > more testb.txt 
    dez     hex     bin
    

    Dann muss es ein spezifisches WINDOWS Problem sein.

     
  • Markus Hoffmann

    Markus Hoffmann - 2022-01-03

    Ja, stimmt. Mit dem WIndows-Emulator (wine) kann ich es reproduzieren. Seltsam!

     
  • Markus Hoffmann

    Markus Hoffmann - 2022-01-03

    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

Log in to post a comment.