Delphi-Quellcode:
const
v: Array[Boolean] of Word = (0, $A001); // mit Komma, nicht daß sich wer beschwert es funktioniere nicht.
begin
...
crc := (crc shr 1) xor v[crc and 1 <> 0]; // <>0 , denn Delphi gibt es keine automatische Ordinal-Boolean-Konvertierung
crc := (crc shr 1) xor IfThen(crc and 1 <> 0, 0xA001, 0);
crc := (crc shr 1) xor IfThen(Odd(crc), 0xA001, 0);
end;
Eine syntaktisch korrekte Übersetzung gibt es leider nicht. (schade eigentlich), aber am Nächsten würde doch wohl
IfThen kommen.
Leider ist IfThen nur eine billige Funktion und keine so schöne native Operation, was einige Nachteile mit sich bringt.
- Funktionsaufrufe (Codesprünge)
- alle Parameter werden erst ausgewertet (in C wird nur der verwendete "Parameter" ausgewertet)
Also hier wäre, von der Ausführungsgeschwindigkeit her, das BoolArray natürlich besser.