Forum: Compiler & IDEs Eine Zahl zerlegen?


von AVRli (Gast)


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...

von Karl H. (kbuchegg)


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

von AVRli (Gast)


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...

von Karl H. (kbuchegg)


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.

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.