Überschriebenen Int-Überlauf in Go erkennen

8

Ich baue eine Lisp, und ich möchte 32-Bit-Ganzzahlen automatisch zu 64-Bit-Ganzzahlen wechseln, wenn eine Berechnung würde sonst dazu führen, dass sie überlaufen. Und ebenso, für 64-Bit-Überläufe, wechseln Sie zu beliebig großen Ganzzahlen.

Das Problem, das ich habe, ist, dass ich nicht weiß, was der "richtige" Weg ist, einen ganzzahligen Überlauf zu erkennen.

%Vor%

Wie kann ich effizient prüfen, ob c übergelaufen ist?

Ich habe erwogen, immer in 64-Bit-Werte umzurechnen, um die Berechnung zu machen, und dann nachher wieder herunterzuzählen, aber das erscheint teuer und spart viel Zeit für etwas, das so primitiv und grundlegend für die Sprache ist wie Grundrechenarten. p>     

d11wtq 10.11.2015, 23:37
quelle

1 Antwort

5

Um beispielsweise einen 32-Bit-Integerüberlauf für die Addition zu erkennen,

%Vor%

Ausgabe:

%Vor%     
peterSO 11.11.2015, 03:26
quelle

Tags und Links