Int Zahlen zerlegen "Codevision"

Gast #1036621
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
>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...
Einfach itoa dafür missbrauchen, dann hast du jede 10er Stelle als Char 
vorliegen und brauchst nur noch '0' oder auch 0x30 davon abziehen. 
Ansonsten musst halt einfach nur itoa selber programmieren wo dann eben 
die umwandlung in einen String entfällt.
Gast
#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
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.