www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller und runden?


Autor: Kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie genau funktioniert das runden beim Mikrocontroller, bzw. wie stabil 
ist es?

Ich habe eine 8-Bit Variable point die z.B. folgendermaßen berechnet 
wird:

point = (((216 * 144) / 100) - 56);

Ergibt einen Wert von 255,04. Der Mikrocontroller macht daraus eine 255. 
Wie sicher ist es das daraus immer eine 255 wird?

Ab wann würde er aufrunden, ab 255,5?

Autor: Robert S. (razer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kai wrote:
> Ab wann würde er aufrunden, ab 255,5?

Gar nie. Auch 255,9 ist in der Integerrechnung eine 255

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gerundet wird  da garnicht, der Nachkommaanteil wird abgeschnitten wenn 
Du mit ints rechnest.

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rechenwert x 10, dann +5, danach wieder / 10. Das ergibt das 
kaufmännische Runden oder wie immer das heist.

MW

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kai wrote:
> Hallo,
>
> wie genau funktioniert das runden beim Mikrocontroller, bzw. wie stabil
> ist es?
>
> Ich habe eine 8-Bit Variable point die z.B. folgendermaßen berechnet
> wird:
>
> point = (((216 * 144) / 100) - 56);
>
> Ergibt einen Wert von 255,04. Der Mikrocontroller macht daraus eine 255.
> Wie sicher ist es das daraus immer eine 255 wird?
>
> Ab wann würde er aufrunden, ab 255,5?


In der Berechnung wird überhaupt nicht gerundet. Kommastellen
(so es sie gäbe) werden einfach abgeshcnitten.

Da in deiner Berechnung nur Ganzzahl-Werte (Integer) vorkommen,
wird die ganze Berechnung mit Ganzzahlarithmetik gemacht. Genauso
wie du es in der Grundschule gelernt hast:
Eine Mutter hat 13 Äpfel und 4 Kinder. Wenn alle Kinder gleich
viele Äpfel erhalten, wieviele Äpfel erhält dann jedes Kind
und wieviele Äpfel bleiben der Mutter übrig

   13 / 4  =  3

jedes Kind erhält 3 Äpfel und der Mutter bleiben 13 % 4 = 1
Apfel übrig. % ist die C Schreibweise für 'Rest bei einer Division'

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man sollte sich immer ueberlegen wie genau man eine Zahl haben muss. Das 
haengt auch mit den Eingangsvariablen zusammen. Wenn ein Sensor nur 1% 
genau ist, bringen Rechnungen mit 12 Stellen nichts.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Division der positiven Ganzzahlen a und b mit Abrunden:
a/b
Division der positiven Ganzzahlen a und b mit Aufrunden:
(a+b-1)/b
Division der positiven Ganzzahlen a und b mit Runden zur nächsten
Ganzzahl:
(a+b/2)/b
Aber Vorsicht: Bei negativen Zahlen ist das Ergebnis
prozessorabhängig.

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.