# Große Int in kleine Ints zerlegen ?



## Xeon1400 (3. Mai 2012)

Hi,
Ich möchte einen große, mehrstelligen Integer z.B. int a = 12435 in kleine Integer zerlegen welche aus den stellen des großen Integers bestehen. Also in dem Fall int b = 1 int c = 2 int d = 4 usw.
Leider komme ich nicht drauf wie ich das anstelle, jemand ne Idee ?
Schon mal im voraus Danke
Xeon


----------



## genodeftest (3. Mai 2012)

Hi und willkommen im Forum!

Für dein Problem gibt es ein paar Operatoren wie z.B.:
• der Modulooperator % zur Division mit Rest
• der Divisionsoperator /
• der Multiplikationsoperator *
• Bitshiftingoperatoren <<, >>, …
siehe auch http://openbook.galileocomputing.de/javainsel/javainsel_02_004.html

in deinem Fall könntest du das so lösen, dass du a mit Modulo 10 teilst, dann a/10 mit Modulo 10 nimmst, a/100 Modulo 10, …
So bekommst du alle Dezimalstellen der Reihe nach – die letzte Stelle zuerst.


----------



## Xeon1400 (3. Mai 2012)

Danke 
für die schnelle Antwort ich werde gleich mal ausprobieren


----------



## melmager (3. Mai 2012)

entweder immer duch zehnteilen und im schritt a den rest auswerten und im zweiten schritt die eingangszahl verkleinern.
Nachteil man bekommt die Zahl von hinten nach vorne

oder
Integer in String wandeln und dann den string zeichen für zeichen durchgehen und den char wider zum Int machen
nachteil : von hinten durch die brust ins Auge

edit: zu langsam :-(


----------



## Xeon1400 (3. Mai 2012)

Hi, leider läuft es nicht so, was wahrscheinlich an mir liegt, auf jedenfall das mit dem Modulo klappt bei der letzten Stelle gut. z.B. 16 % 10 = 6 doch wie komm ich an die 1 ?
Danke
Xeon


----------



## genodeftest (3. Mai 2012)

(16/10)%10 oder gleich 16/10. Bei Ganzzahlen wird immer abgerundet.


----------



## melmager (3. Mai 2012)

```
int eingang = "12345";
int out;
while (eingang > 0) {
   out = eingang % 10;
   eingang = eingang / 10;
}
```
-unter vorbehalt-


----------



## Thomas Darimont (3. Mai 2012)

Hallo,


schau mal hier:

```
package de.tutorials;

import java.util.Arrays;

public class IntToNumbers {

	public static void main(String[] args) {
		int num = 12345;
		
		int[] digits = new int[(int)Math.log10(num) + 1];
		
		for(int i = 0; i < digits.length; i++){
			digits[i] = (int)((num / Math.pow(10, digits.length - i - 1))) % 10;
		}
		
		System.out.println(Arrays.toString(digits));
		System.out.println(digits[0]);
		System.out.println(digits[1]);
		System.out.println(digits[2]);
		System.out.println(digits[3]);
	}

}
```

Ausgabe:

```
[1, 2, 3, 4, 5]
1
2
3
4
```

Gruß Tom


----------

