Int Zahlen zerlegen "Codevision"

Gast #1036621
Lesenswert?

Hay Leute

Ich möchte gerne eine Int Zahl zerlegen.

Bsp.:

int ganze_zahl = 123456789;

Sollte am ende so aussehen.

int tmp_1=ganze_zahl erste  Stelle;
int tmp_2=ganze_zahl zweite Stelle;
int tmp_3=ganze_zahl dritte Stelle;
int tmp_4=ganze_zahl vierte Stelle;
....
....
....
....
....

Aber alles aus der ganzen_zahl.

Würde das gehen.?
Und wenn wie.?

MFG: Fichte
Gast #1036623
Lesenswert?

>int ganze_zahl = 123456789;

100000000 solange abziehen, bis die Zahl kleiner als 100000000 ist.
100000000 durch 10 teilen und wieder solange abziehen...
Die einzelnen Durchläufe der Stellen einfach zählen...
Gast #1037357
Lesenswert?

#include <stdio.h>
noch vorher einbinden.
123456789 ist ausserdem eine long-Zahl, passt also nicht in int.
Willst du auch long-Zahlen mit printf () ausgeben, Compilereinstellungen 
entsprechend wählen - standardmässig arbeitet printf erstmal nur mit 
int.
printf ist sicher die einfachste Lösung für den Programmierer (und 
funktioniert gatrantiert fehlerfrei) - braucht aber ne Menge flash. Wenn 
du den hast (welcher MC?) kein Problem.
Oben genannte Lösungen gehen deutlich sparsamer damit um.
Gast #1038048
Lesenswert?

Hallo,

ich bin mir nicht ganz sicher ob ich die Problemstellung verstehe. Wenn 
es nur darum geht eine zahl im 32 bit Format ueber RS232 auszugeben, 
muesste e sdoch mit sprintf ganz leicht gehen:

z.B.

main()
{
    int32 temp = 1234567890;
    char outstring[];

    /* AVR und UART konfigurieren */
    init_AVR();

    /* Zahl in string umwandeln */
    sprintf(outstring, "%d", temp);

    /* String ueber RS232 ausgeben */
    printf("%s\n", outstring);

}

Ist warscheinlich nicht die effizienteste Loesung muesste aber als Demo 
gehen.

Gruss,
Gerhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren