PB4 Interpretation bool'scher Ausdrücke

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

AndyX hat geschrieben:ich habe gehört, TRUE kann alles sein außer 0, dann ist FALSE 0. bin mir nicht sicher, nich hauen...
Habs mal getestet

Code: Alles auswählen

Procedure Boolean(boolean.l)
  If boolean <> 0
    ProcedureReturn #True
  ElseIf boolean = 0
    ProcedureReturn #False
  EndIf
EndProcedure
Scheint zu stimmen :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Holt denn Hammer :lol:

Ich glaube darüber kann man noch Tage diskutieren und kommt zu keinen gemeinsamen nenner. Außer das False = 0 ist.
Mal schauen was die Zukunft bringt.

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Har :mrgreen:

Habe eine ausnahme gefunden:

S_OK = 0
S_FALSE = 1

FF :allright:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

mk-soft hat geschrieben:Har :mrgreen:

Habe eine ausnahme gefunden:

S_OK = 0
S_FALSE = 1

FF :allright:
Ich auch:

Code: Alles auswählen

#VARIANT_TRUE   = $FFFF ; Variant version of TRUE
#VARIANT_FALSE  = $0000 ; Variant version of FALSE
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ts-soft hat geschrieben:

Code: Alles auswählen

#VARIANT_TRUE   = $FFFF ; Variant version of TRUE
#VARIANT_FALSE  = $0000 ; Variant version of FALSE
yo hey, da is ja die -1 wieder *fahne schwenk*
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Naja, eigentlich ist das 65535 aber wenn du meinst ;)
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich denke, das Hauptproblem ist, dieses stimmt:

Code: Alles auswählen

Debug #True Not #False
Aber hier stimmts nicht:

Code: Alles auswählen

Debug #False Not #True
:lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

MVXA hat geschrieben:Naja, eigentlich ist das 65535 aber wenn du meinst ;)
und was ist eine $FFFF in signed word? ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

Eine herzliche Bitte an die Diskutanten: macht doch einen eigenen Faden auf.
Diskutiert da bis zum Gehtnichtmehr darüber, ob #True nun 1 oder -1 sein soll.
Macht eine Umfrage auf.
Dort bekommt Ihr auch meine Stimme : -1, weil es logischer und in allen anderen erwachsenen Programmiersprachen so ist.

Hier geht es aber doch um die richtige Interpretation Bool'scher Ausdrücke!
Die erfolgt in PB einfach völlig falsch!
Vom Compiler wird aber auch keine Fehlermeldung ausgegeben, dass ein solcher Ausdruck nicht zulässig ist!

Das ist kein "Feature" sondern ein kapitaler Bolzen in einer Programmiersprache, der schleunigst behoben werden sollte.

Code: Alles auswählen

a = 50 : Debug (a < 60) : Debug (a = 60) : Debug (a > 60) 
a = 60 : Debug (a < 60) : Debug (a = 60) : Debug (a > 60) 
a = 70 : Debug (a < 60) : Debug (a = 60) : Debug (a > 60) 
Ergebnis ist 9 mal die 60!
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

> und was ist eine $FFFF in signed word?
Dann möchte ich aber auch hier die $FF in signed Byte,
die $FFFFFFFF in signed Long und nicht vergessen die
$FFFFFFFFFFFFFFFF in signed Quad erwähnen :P
Bild
Gesperrt