Zitat:
Abgesehen davon, dass mir das unnötig kompliziert erscheint gegenüber einem Binärvergleich hast Du vergessen, das Array zu dimensionieren (SetLength).
Aber ich weiß doch nicht im Vorraus bis wohin der array geht oder? Die Größe ist doch abhängig von der eingegebenen Zahl?
Zitat:
Für sowas schadet es nie, wenn man mal die Bereichsprüfung aktiviert.
{$Q+} => oder über die Projektoptionen und neuerdings auch via {$OVERFLOWCHECKS ON}
Dann wäre das fehlende SetLength sofort aufgefallen.
Und wenn du so wild rumrechnest, dann eventuell auch noch die Überlaufprüfung.
{$R+} => oder über die Projektoptionen und neuerdings auch via {$RANGECHECKS ON}
Ich habe beides in den Afang des Codes eingefügt und ich bekomme trotzdem eine Fehlermeldung.
Zitat:
Und wegen dem "kompliziert":
Können sich auch ein paar Nachteile (Rechenfehler) ergeben, wenn man "Binäroperationen" (Auslesen der Bits für einen "Integer") über Fließkommazahlen und -Fließkommaperationen abwickelt (Extended), wo es diese gewünschten "Bits" so eigentlich nicht gibt.
Wenn ich number als integer eintrage erhalte ich: [Error] ex69.dpr(28): Incompatible types: 'Integer' and 'Extended'