Hi,
ich habe ein kleines Verständnisproblem in Bezug auf eine NumberFormatException und komme einfach nicht dahinter, warum diese ausgelöst wird - obwohl es vermutlich etwas ganz triviales/offensichtliches ist...😳
Zum Problem:
Da ich einfach mal mein Wissen darüber, wie man Zahlen in verschiedene Zahlensysteme umrechnet, auffrischen wollte, dachte ich mir, ich bastel einen eigenen Algorithmus der z. B. Dezimalzahlen in Dualzahlen und Hexadesimalzahlen verwandeln kann. Das stellte sich auch als recht einfach heraus und hat eigentlich auf Anhieb geklappt - dachte ich zumindest. Jetzt habe ich aber festgestellt, dass mein Algorithmus nur mit Dezimalzahlen bis 1023 korrekt funktioniert, bei größeren Zahlen bricht das Programm mit einer NumberFormatException ab.
Hier der Code meiner Methode:
Das Problem scheint in Zeile 22 zu liegen, doch ich verstehe nicht warum die Exception ausgelöst wird - immerhin enthält der String nur Zahlen und bis 1023 klappt es ja problemlos. Kann mir das jemand erklären?
ich habe ein kleines Verständnisproblem in Bezug auf eine NumberFormatException und komme einfach nicht dahinter, warum diese ausgelöst wird - obwohl es vermutlich etwas ganz triviales/offensichtliches ist...😳
Zum Problem:
Da ich einfach mal mein Wissen darüber, wie man Zahlen in verschiedene Zahlensysteme umrechnet, auffrischen wollte, dachte ich mir, ich bastel einen eigenen Algorithmus der z. B. Dezimalzahlen in Dualzahlen und Hexadesimalzahlen verwandeln kann. Das stellte sich auch als recht einfach heraus und hat eigentlich auf Anhieb geklappt - dachte ich zumindest. Jetzt habe ich aber festgestellt, dass mein Algorithmus nur mit Dezimalzahlen bis 1023 korrekt funktioniert, bei größeren Zahlen bricht das Programm mit einer NumberFormatException ab.
Hier der Code meiner Methode:
Java:
private static int dezInBin(int dez)
{//dezInBin()
int bin, laenge;
String binBuffer="0", buffer2="0";
//Divisions-Methode durchführen
for(int i=(int)dez; i>0; i=i/2)
{
binBuffer+=(int)dez%2;
dez=dez/2;
}
binBuffer=binBuffer.substring(1);
//Ergebnis der Divisions-Methode umdrehen
laenge=binBuffer.length();
for(int i=laenge-1; i>=0; i--)
{
buffer2+=String.valueOf(binBuffer.charAt(i));
}
buffer2=buffer2.substring(1);
bin=Integer.parseInt(buffer2);
return bin;