Wieso ist das Ergebnis 848, wenn ich doch nur mit byte arbeite... Laut Delphi 2006 Onlinehilfe, ist das Ergebnis vom gleichen Typ wie x (x shl y). Also Bits die über den linken Rand hinausgehen werden wieder rechts angehängt...
Spiel ich mit byte-Variablen rum:
Delphi-Quellcode:
var
a, b, c: byte;
begin
a := 53 ;
b := 4 ;
c := a shl b ;
//a := (b shl 4) or ((c shr 2) and $0F);
end;
gibts nen Fehler "Fehler bei Bereichsprüfung".
Der Code stammt aus der DCPCrypt Sammlung von David Barton, und ist aus der Base64Encode Prozedur.