Dezimalzahl zerlegen in einzelne Zahlen

Gast #2398150
Lesenswert?

Hallo.
Habe eine vielleicht etwas seltsame Frage.
Ich habe z.B. eine Zahl von 123. (dezimal)
Ich möchte diese Zahl in 1 und 2 und 3 zerlegen.

Mit welcher Formel/Verfahren geht das am besten?
Die zahl kann auch 3, oder 20, oder 3000 sein.

brauche, wie gesagt, einzelne Stellen der Dezimalzahl.

Danke
Gruss Alex S.
Gast #5155459
Lesenswert?

Dürfte ich diesen Thread nochmal aufgreifen, denn der hat mir sehr 
geholfen. Jetzt scheitere ich aber an der Zerlegung einer 4-stelligen 
Zahl. Könnte das bitte noch jemand posten. Dankeschön!
#5155470
Lesenswert?

Dieser Code ist für alle bis zu 10 stelligen Ganzzahlen.
1
#include <stdio.h>
2
#include <stdlib.h>
3

4
int main()
5
{
6
        long integer = 1234567890;
7
        int digits[10] = { 0 };
8
        int i;
9

10
        printf("De-composing:\n");
11
        for(i = 0; integer != 0; i++)
12
        {
13
                digits[i] = integer % 10;
14
                integer = integer / 10;
15
                printf("Remainder: %ld\n", integer);
16
        }
17

18
        printf("Resulting Digit Array: ");
19
        for(i = 9; i >= 0; i--)
20
        {
21
                printf("(%d)", digits[i]);
22
        }
23
        printf("\n");
24
        return 0;
25
}

Das ist nur schnell hingecoded, ich habe jetzt nicht auf irgendwelche 
Wertebereiche oder ähnliches geachtet.
Gast #5155477
Lesenswert?

Und der Vollständigkeitshalber noch für Stunden/Minuten oder 
Minuten/Sekunden als Mikroelektronika-BASIC-Funktion:
1
sub function s2ms(dim num as word) as byte
2
  digit  = num div 600          '600
3
  por[3] = mask(digit)
4
  digit  = num div 60 mod 10    '60 10
5
  por[2] = mask(digit)
6
  digit  = num div 10 mod 6     '10 6
7
  por[1] = mask(digit)
8
  digit  = num mod 10           '10
9
  por[0] = mask(digit)
10
  result = 0
11
end sub

Gruss Chregu
Gast #5155552
Lesenswert?

Ganz allgemein: Die i-te (i>=1) Ziffer einer ganzen Zahl Z erhält man 
mit z(i) = floor(10*frac(Z/10^i))

Wie Du das effizient implementierst, hängt wesentlich von der 
Programmiersprache ab, aber danach hast Du nicht gefragt :-)

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