mikrocontroller.net

Forum: Compiler & IDEs Eine Zahl zerlegen?


Autor: AVRli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich möchte einen uint16_t Wert möglichst ohne Float auf meinen UART 
ausgeben.

Ein Wert von 321 soll als 3.21 ausgegeben werden. Wie komme ich nun auf 
den Wert 3 und dann auf den Wert 21 ?

Anders soll der Wert 0 als 0.00 ausgegeben werden.

Wie bekommt man das konvertiert?

Gruß AVRli...

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

Bewertung
0 lesenswert
nicht lesenswert
Wieviel ergibt 321 / 100 ?
Und wieviel bleibt dabei Rest?

(Rest ist in C der Modulo Operator %. mann kanns natürlich auch so 
rechnen:

  321 / 100   macht 3.   312 - 3 * 100 macht 21

oder eben

  321 / 100  ->   3
  312 % 100  ->  21


bei den Nachkommastellen nicht auf die führenden 0-en vergessen. 2.05 
ist was anderes als 2.5

Autor: AVRli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Perfekt!!!!

Ohh man, mit Rest habe ich noch nie was gemacht aber so lernt man 
wieder.

Besten Dank Karl Heinz mein Dauerhelferlein!!! ;-)

Gruß AVRli...

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

Bewertung
0 lesenswert
nicht lesenswert
AVRli schrieb:
> Perfekt!!!!
>
> Ohh man, mit Rest habe ich noch nie was gemacht

Doch. Das hast du mit Sicherheit schon gemacht.
In deiner Grundschule, 2tes Jahr

Eine Mutter hat 13 Äpfel und 5 Kinder. Wieviele Äpfel kriegt jedes Kind, 
wenn alle gleich viele kriegen und wieviele bleiben der Mutter übrig?

Bei dir sinds halt 321 Äpfel und 100 Kinder. Und diesen Zusammenhang 
herzustellen, das ist der Knackpunkt.


Und wenn man dann mal darüber sinniert, wie unser Zahlensystem bei 
mehrstelligen Zahlen eigentlich funktioniert, dann kommt man drauf, dass 
321 ja auch nichts anderes als 3 * 100 + 2 * 10 + 1 ist und dass alles 
kleiner als die Hunderterstelle immer kleiner als 100 sein muss und 
daher bei einer int-Division wegfallen wird.

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.