In VB6 ergibt das Erzwingen von True
zu einer Ganzzahl den Wert -1.Warum ist -1 das Ergebnis von True auf eine ganze Zahl in VB6?
Warum ist das so? Was ist der Grund dafür?
In den meisten anderen Programmiersprachen (C/C++, Java, Perl, Python usw.) wird true zu 1, wenn es in eine ganze Zahl umgewandelt wird. In der Booleschen Algebra wird der Wert 1 verwendet, um wahr/ein zu repräsentieren. Warum macht VB6 das anders?
Ich sehe eine gewisse elegante Symmetrie in der Tatsache, dass ein Bitwise-nicht von -1 (True) 0 (False) ergibt, und umgekehrt (wegen -1 Darstellung ist alles 1s in two's complement), aber Ich kann mir keinen praktischen Nutzen dieser Identität vorstellen.
Ich frage nur aus Neugier, übrigens - das war etwas, das mir seltsam vorkam, als ich VB6 zum ersten Mal lernte, und ich frage mich seitdem.
Ich weiß :) Ich mag VB nicht;) – Onkelborg
Interessant! Danke für den Link. Ich wusste, dass die logischen Operatoren nicht kurzgeschlossen und bitweise für ganze Zahlen gearbeitet haben, aber ich erkannte nicht, dass sie nur bitweise waren, sogar für Boolesche Werte. Und @Onkelborg, ich mag VB auch nicht, ich war nur neugierig auf diese Anomalie ;-) – Cameron
Gut :) Ther's Hoffnung für die Menschheit :) – Onkelborg