Hallo,
ich habe folgendes Problem:
Ich versuche einen binären String in einen Integer umzuwandeln.
Mein ursprünglicher binärer String ist 32+ Zeichen lang. Also zerlege ich ihn in Zeichenketten bestehend aus 32 Zeichen um ihn in meinem Beispiel in Dezimalzahlen umzuwandeln, das funktioniert aber irgendwie nicht... ich bekomme immer folgenden Fehler:
Hier mein Code:
Warum funktioniert das nicht? Theoretisch sollten 2 Binär-Strings und 2 Dezimal-Zahlen in der Konsole angezeigt werden.
Wäre nett, wenn jemand eine Idee hat
MFG
TimoH.
ich habe folgendes Problem:
Ich versuche einen binären String in einen Integer umzuwandeln.
Mein ursprünglicher binärer String ist 32+ Zeichen lang. Also zerlege ich ihn in Zeichenketten bestehend aus 32 Zeichen um ihn in meinem Beispiel in Dezimalzahlen umzuwandeln, das funktioniert aber irgendwie nicht... ich bekomme immer folgenden Fehler:
Java:
Binär-String: 10100101001111000100000000110010
Exception in thread "main" java.lang.NumberFormatException: For input string: "10100101001111000100000000110010"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:461)
at binarytest.Main.main(Main.java:16)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Hier mein Code:
Java:
public static void main(String[] args) {
final int bit = 32;
final int length = 64;
String binStr = getBinary(length);
String tmp = "";
while(!binStr.isEmpty()){
if(binStr.length() >= 32){
tmp = binStr.substring(0, bit);
System.out.println("Binär-String: "+ tmp);
System.out.println("Dezimal-Integer: "+Integer.parseInt(tmp,2));
binStr = binStr.substring(bit);
}else{
tmp = binStr.substring(0);
System.out.println("Binär-String: "+ tmp);
System.out.println("Dezimal-Integer: "+Integer.parseInt(tmp,2));
binStr = "";
}
}
}
private static String getBinary(int length) {
String binStr = "";
Random rnd = new Random();
for(int i = 0; i < length ;i++){
binStr += rnd.nextInt(2);
}
return binStr;
}
Warum funktioniert das nicht? Theoretisch sollten 2 Binär-Strings und 2 Dezimal-Zahlen in der Konsole angezeigt werden.
Wäre nett, wenn jemand eine Idee hat
MFG
TimoH.
Zuletzt bearbeitet: