www.mikrocontroller.net

Forum: Compiler & IDEs uebertrag bei addition feststellen (atmega)


Autor: vinschente (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

folgendes problem, ich möchte zwei zahlen addieren : uin16_t und int16_t
dabei kann es zu überträgen kommen: z.b 65535+2 = 1 oder 0-1=65535

wie kann ich feststellen, dass so etwes aufgetreten ist?
wie kann man zwischen beiden möglichkeiten unterscheiden(WICHTIG!)?
ist es sinnvoll das carry flag im SREG auszulesen, oder gibt es andere 
möglichkeiten?

mfg vinschente

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vinschente schrieb:
> wie kann ich feststellen, dass so etwes aufgetreten ist?

Wenn die Summe kleiner als die einzelnen Summanden ist, oder die 
Differenz größer als der Minuend.

vinschente schrieb:
> ist es sinnvoll das carry flag im SREG auszulesen

Nein.

Oliver

Autor: Johnny Voltage (mrwhite)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und vielleicht noch eine Info:

> folgendes problem, ich möchte zwei zahlen addieren : uin16_t und int16_t
> dabei kann es zu überträgen kommen: z.b 65535+2 = 1 oder 0-1=65535

Bei 0 + (-1) kommt es gar nicht zu einem Überlauf. Bei der Addition von 
uint16_t und int16_t wird erst mal der int16_t zu einem uint16_t 
promotet. Tatsächlich wird dann also 0 + 65535 gerechnet.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.