Hallo Forum!
Ich habe ein etwas ungewöhnliches anliegen!
Ich muss ein binäres Format in eine Dezimalzahl umwandeln, dabei brauche ich aber nicht das Endergebnis, sondern die 1ser, die gesetzt sind und die damit erhaltenen Zwischenschritte.
Was ich damit genau meines als Bsp:
Die Zahl 9 = 1001
Nun muss ich wissen, dass sich die Zahl 9 aus den einzelnen Zahlen 2^3 und 2^0 zusammensetzt, ergibt also die Dezimalzahl 8 und 1.
Was ich also letzten Endes benötige sind die Zahlen 8 und 1!
Einen Java Code hierzu habe ich bereits angefangen und ich weiss auch, wie ich mir das ganze zusammenbauen könnte, jedoch ist es extrem umständlich und ich wollte fragen, ob es eine einfachere Methode dafür vll. gibt?
Hier mal mein angefangener Code:
Über die Länge des gesamten Strings kann ich mal erfahren, wieviele Binärstellen es geben wird u. ich weiss auch, wo die 1ser gesetzt sind, jedoch halte ich das Ganze ein wenig für zu kompliziert programmiert, vll. kann mir jemand eine kürzere Variante zeigen?
Ich danke Euch vielmals!
lG
Ich habe ein etwas ungewöhnliches anliegen!
Ich muss ein binäres Format in eine Dezimalzahl umwandeln, dabei brauche ich aber nicht das Endergebnis, sondern die 1ser, die gesetzt sind und die damit erhaltenen Zwischenschritte.
Was ich damit genau meines als Bsp:
Die Zahl 9 = 1001
Nun muss ich wissen, dass sich die Zahl 9 aus den einzelnen Zahlen 2^3 und 2^0 zusammensetzt, ergibt also die Dezimalzahl 8 und 1.
Was ich also letzten Endes benötige sind die Zahlen 8 und 1!
Einen Java Code hierzu habe ich bereits angefangen und ich weiss auch, wie ich mir das ganze zusammenbauen könnte, jedoch ist es extrem umständlich und ich wollte fragen, ob es eine einfachere Methode dafür vll. gibt?
Hier mal mein angefangener Code:
Java:
Integer IntgreaterZero = new Integer(9);
String binaryString = Integer.toBinaryString(IntgreaterZero);
int length = binaryString.length();
System.out.println("Laenge: " + length);
StringBuffer buff = new StringBuffer(binaryString);
String PositionOfOnes = buff.toString();
ArrayList<Integer> myList = new ArrayList<Integer>();
for (int i = -1; (i = PositionOfOnes.indexOf("1", i + 1)) != -1; ) {
myList.add(i);
System.out.println("1: " + i);
}
for ( Object x : myList )
System.out.println("bitError: " + x);
Über die Länge des gesamten Strings kann ich mal erfahren, wieviele Binärstellen es geben wird u. ich weiss auch, wo die 1ser gesetzt sind, jedoch halte ich das Ganze ein wenig für zu kompliziert programmiert, vll. kann mir jemand eine kürzere Variante zeigen?
Ich danke Euch vielmals!
lG
Zuletzt bearbeitet von einem Moderator: