PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrstellige Zahl in einzelne Ziffern trennen - wie ?



luzifer_am
24.12.2012, 21:42
Hallo zusammen,
ich bin recht neu in der µC scene und stehe gerade vor einem Problem, das ich selbstständig nicht lösen kann.
Ich hoffe ihr könnt mir da weiterhelfen.

Ich habe eine Zweistellige zahl die ich in einzelne ziffern getrennt brauch um damit weiter arbeiten zu können.
Nur weiß ich leider nicht, wie ich das anstellen soll.
Die zahl liegt als integer, aber ich könnte sie auch in einen string umwandeln, wenns damit leichter geht.

Sprich:
Zahl = 13;
und ich hätte sie gern getrennt in:
i = 1;
und
j = 3;


ich verwende ein Arduino Uno, welches ich in C programmier.

vielen dank für eure Hilfe.
Gruß Alex

radbruch
24.12.2012, 22:14
i=zahl%10; // Zehner berechnen
j=zahl-10*i; // Einer berechnen

...oder so ähnlich.

Gruß

mic

[Edit]
Oder hier: https://www.roboternetz.de/community/threads/31893-Tasterwerte-an-Hyperterminal-%C3%BCbergeben?p=301175&viewfull=1#post301175
...und folgende Beiträge.

021aet04
24.12.2012, 22:14
Hatte das gleiche Problem. https://www.roboternetz.de/community/threads/42955-Aufteilung-einer-Zahl-in-Einer-Zehner-Hilfe!!!-gelöst?highlight=zahlen%20aufteilen

MfG Hannes

luzifer_am
24.12.2012, 22:20
Besten dank ;)

-schumi-
25.12.2012, 02:44
Was auch noch funktionieren sollte:



char ZahlString[2];
itoa(Zahl, ZahlString, 10);
i=ZahlString[0]-48;
j=ZahlString[1]-48;


(Code nicht ausprobiert)

Du könntest dir sogar i und j sparen und immer mit dem Array-48 weiterarbeiten (48, weil dort die 0 im Ascii-table liegt und die Nummer fortläuft bis 9)