Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: QBasic zu Delphi

  Alt 19. Jul 2009, 01:44
OR liefert dann das selbe Ergebnis wie +, wenn man nur Zweierpotenzen verknüpft. Aber auch nur, wenn alle Operanden dabei voneinander verschieden sind! Man sieht ab und an so ein + beim Zusammenbasteln von Flag-Feldern, bei denen einzelne Bits in einem Integer-Wert (zurück-)gesetzt werden, das ist aber semantisch Blödsinn, und kann ggf. auch seltsame ungewollte Ergebnisse liefern.

"AND 240" ist binär "AND 11110000". D.h. dass von einem Byte nur die obersten 4 Bits betrachtet werden sollen. Das ist durch keinen der üblichen mathematischen Operatoren ausdrückbar, so lange man nicht genau weiss wie die unteren 4 Bits gesetzt sind (dann könnte man ihre Werte subtrahieren, ist aber auch verkorkster Stil den kein normaler Mensch auf Anhieb verstehen wird).


\\Edit: Das "div 16" kannst du konsequenterweise hier auch durch den binäroperator SHR (shift right) ersetzen. N div 16 = N shr 4. Das div ist an dieser Stelle ähnlich schlechter Stil wie das o.g. Verwenden von mathematischen Operatoren für logische Operationen - es ist eigentlich genau das

\\Edit2: Das letzte "+" in diesen Zeilen ist dagegen richtig! Da scheint eine Konvertierung zwischen Character-Tabellen stattzufinden, und in diesem Zusammenhang ist das mathem. + korrekt. Also nicht auf die Idee kommen daraus nun nen "OR" zu machen
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat