Thema: Delphi not und and Operator

Einzelnen Beitrag anzeigen

Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: not und and Operator

  Alt 12. Okt 2005, 21:14
Dann könnt ihr mir bestimmt auch erklären warum das hier nicht klappt:

Delphi-Quellcode:
function getbitfrombyte(b : byte; pos : integer) : Boolean;
Begin
 if b shl (7-pos) = $80
   then result := true
   else result := false;
end;

var b : byte;
Begin
 b := $FF;
if getbitfrombyte(b, 0)
  then showmessage('JO')
  else showmessage('');
end.

Warum liefert mir das "nö" ???

$FF = 1 1 1 1 1 1 1 1
Nr.: 7 6 5 4 3 2 1 0

Ich meine wenn ich b um 7 bits nach links verschiebe hab ich doch 1 0 0 0 0 0 0 0 und das ist doch $80 ...

könnte natürlich auch an mir leigen das ich einfach die Delphihilfe nicht verstehe aber so wie die das dort beschreiben müsste das 'JO' ergeben

Zitat von F1:
Die Operationen x shl y und x shr y verschieben den Wert von x um y Bits nach links oder rechts (falls es sich bei x um einen vorzeichenlosen Integer handelt). Dies entspricht der Multiplikation oder Division von x durch 2^y. Das Ergebnis hat denselben Typ wie x. Wenn beispielsweise in N der Wert 01101 (dezimal 13) gespeichert ist, liefert N shl 1 den Wert 11010 (dezimal 26) zurück. Beachten Sie, dass der Wert von y als Restwert der Größe von Typ x interpretiert wird. Wenn z.B. x ein Integer ist, wird x shl 40 als x shl 8 interpretiert, da ein Integer 32 Bit hat, und 40 minus 32 den Wert 8 ergibt.
Jan
  Mit Zitat antworten Zitat