Thema: Delphi not und and Operator

Einzelnen Beitrag anzeigen

SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#9

Re: not und and Operator

  Alt 12. Okt 2005, 21:40
Zitat von Eichhoernchen:
Dann könnt ihr mir bestimmt auch erklären warum das hier nicht klappt:
Klar.
Du speicherst das Ergebnis nicht in einer Variable, sondern benutzt es direkt zum Vergleich. $FF shl 7 ist $7F80. Erst wenn man das Ergebnis in einer Byte-Variable speichert werden die oberen Bits abgeschnitten und man erhält $80.
Das kann man auch durch einen Typecast erreichen: if Byte(b shl (7-pos)) = $80 Aber auch damit ist deine getbitfrombyte-Funktion falsch. Beispiel: getbitfrombyte($FF, 7) führt zu dem Vergleich "if $FF = $80" --> false, obwohl true herauskommen sollte.

So ist es richtig: if b shl (7-pos) and $80 <> 0
  Mit Zitat antworten Zitat