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?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage