mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zahl in Ziffern aufspalten


Autor: joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Hat jemand eine Idee für eine möglichst kurze C-Anweisung bei der eine
Zahl von z.b.: 51410 in folgende Ziffern aufgespaltet wird?:

5, 1, 4, 1, 0

Das ganz soll in einem Arrey abgespeichert werden

mfg Joachim

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem Modulo Operator % und etwas Subtrahieren.

Oder einfach über / (integer) und etwas Subtrahieren.

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Bibliotheksfunktionen: ltoa() und 0x30 abziehen.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mit dem Modulo Operator % und etwas Subtrahieren.
>Oder einfach über / (integer) und etwas Subtrahieren.

Oder man benutzt einfach den "%"- und den "/"-Operator...

51410 % 10 = 0
51410 / 10 = 5141

5141 % 10 = 1
5141 / 10 = 514

514 % 10 = 4
514 / 10 = 51

51 % 10 = 1
51 / 10 = 5

5 % 10 = 5
5 / 10 = 0

So baut man sich das Arr_a_y von hinten nach vorne auf.
In der K&R-C-Bibel ist ein entsprechendes Beispiel sogar mit
Rückumformung drin...
Wenn man allerdings weiß, wie viele Stellen die Zahl maximal haben
kann, kann man das Feld auch von hinten nach vorne aufbauen. Dann hat
man u.U. ein paar führende Nullen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sprint(...

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter:
Naja, man kann auch mit Kanonen auf Spatzen schießen. Wenn man in so
einem Fall unbedingt eine Bibliotheksfunktion verwenden will, dann
besser itoa, die hat nämlich nicht den ganzen Overhead...

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.