Forum: Mikrocontroller und Digitale Elektronik Künstlicher Überlauf


von künstler (Gast)


Lesenswert?

Je nach Datentyp ist 255+1 = 0
Man spricht dann m.W. vom Überlauf.

Wie ist nun ein künstlich herbeigeführter Überlauf zu bezeichnen?

Beispiel:

a = 42;

if (++a > 42)
 a = 0;

http://en.wikipedia.org/wiki/Wrapping_%28overflow%29

von Mark B. (markbrandis)


Lesenswert?

künstler schrieb:
> Wie ist nun ein künstlich herbeigeführter Überlauf zu bezeichnen?
>
> Beispiel:
>
> a = 42;
>
> if (++a > 42)
>  a = 0;

Hm, der Compiler wird wohl sagen "statement is always true" und 
entsprechend optimieren?

von künstler (Gast)


Lesenswert?

Es mag sein, dass er das machen würde, wäre obiges Beispiel ein echtes 
Programm. Darum geht es aber doch gar nicht.

von Karl H. (kbuchegg)


Lesenswert?

Mathematike würden das wohl "Rechnen in einer Restklasse zur Basis 42" 
oder so ähnlich nennen.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wenn es sich um ganzzahlen handelt ist die eine "Endlicher Körper"
http://de.wikipedia.org/wiki/Endlicher_K%C3%B6rper
Oder ein Galoiskörper zur Basis 42.
Mathematisch würde man das dann aber her so schreiben:
1
x = (x + 1) % 42
Aber was ist daran künstlich?

von Karl H. (kbuchegg)


Lesenswert?

Läubi .. schrieb:

> Aber was ist daran künstlich?

Weiß ich auch nicht.
Ich denke er braucht einfach nur eine Bezeichnung für eine Doku.
Ich würd ganz einfach schreiben, das xyz einen Wertebereich von 0 bis 41 
aufweist. Alles andere folgt dann für den Kundigen daraus.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Karl heinz Buchegger schrieb:
> Ich denke er braucht einfach nur eine Bezeichnung für eine Doku.
Dann würde ich das einfach mit einem Zähler Modulo 41 bezeichnen wenn 
immer nur ++ gerechnet wird, oder ein Zähler mit CTC Mode ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.