Hmm, also den letzten Teil versteh' ich net:
Delphi-Quellcode:
// Fold 32-bit sum to 16 bits
while (sum shr 16) > 0 do
sum := (sum and $ffff) + (sum shr 16);
result := not Word(sum);
end;
mal angenommen, ich habe als Summe "0000.1100.0010.0111" (0xC27) raus, dann würde doch folgendes bewirkt:
0000.1100.0010.0111 shr 16 = 0000.1100 das ist größer 0 also summe :=
0000.1100.0010.0111 UND-verknüpft mit 0xffff, also mit
1111.1111.1111.1111 ergibt
0000.1100.0010.0111 (was wieder meine Summe ist) dazu addiere ich nun
0000.0000.0000.1100 und erhalte
0000.1100.0011.0011
Das Spiel kann ich jetzt immer so weiter machen, ohne Ende bzw. bis zum Overflow - oder etwa nicht???