Große Int in kleine Ints zerlegen ?

Xeon1400

Grünschnabel
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
 
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.
 
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 :-(
 
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
 
Code:
int eingang = "12345";
int out;
while (eingang > 0) {
   out = eingang % 10;
   eingang = eingang / 10;
}
-unter vorbehalt-
 
Hallo,


schau mal hier:
Java:
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:
Code:
[1, 2, 3, 4, 5]
1
2
3
4

Gruß Tom
 
Zurück