Wie bekomme ich in MATLAB / Octave einen echten Integer-Überlauf?
Ich arbeite an einem Verifikationstool für einen VHDL-Code in MATLAB / Octave. Dazu benötige ich Datentypen, die "echte" Überläufe erzeugen:
intmax('int32') + 1
ans = -2147483648
Später wäre es hilfreich, wenn ich die Bitbreite einer Variablen definieren könnte, aber das ist momentan nicht so wichtig.
Wenn ich ein C-ähnliches Beispiel erstelle, in dem eine Variable auf einen Wert kleiner als Null erhöht wird, dreht sie sich für immer und ewig:
test = int32(2^30);
while (test > 0)
test = test + int32(1);
end
Ein anderer Ansatz, den ich ausprobiert habe, war eine benutzerdefinierte "Überlauf" -Routine, die jedes Mal aufgerufen wurde, nachdem eine Nummer geändert wurde. Dieser Ansatz war schmerzhaft langsam, nicht praktikabel und funktionierte in allen Fällen überhaupt nicht. Irgendwelche Vorschläge?