Zitat von
Chrissi91:
Also warum 27 kann ich mir noch denken, aber wozu MOD? Also auf sowas wäre ich nie gekommen ...
Hab da 'n bischen um die Ecke gedacht...
Es kann ja sein, dass Byte(Chiffre) < Byte(Klartext), dann wäre das Ergebnis negativ, was bei Bytes ja nicht geht. In diesem Falle würde es beudeuten, dass man im Alphabet vor A guckt. Vor A kommt eben wieder Z, davor Y, usw.. Du hättest es auch anders schreiben können:
Delphi-Quellcode:
Unterschied:=Byte(Chiffre) - Byte(Klartext);
if unterschied < 0 then
Schlüssel:=Char(Unterschied + 91) // unterschied ist -1 oder niedriger, d.h. man zählt von Z (Z=Char(90)) abwährts.
else
Schlüssel:=Char(Unterschied + 65);
Aber ich mache mir gerne mal mehr Gedanken zu einer Rechenoperation, wenn ich mir dafür die ein oder andere Fallunterscheidung sparen kann.