我想將二進制補碼二進制數(在任何位)轉換爲十進制,我給了一個numberformatexception.I新的在java。我努力尋找是什麼原因,但我無法找到它。有沒有人可以對我說這個代碼博客的問題是什麼?Numberformat異常
...
public static int decimal(String a){
if((a.charAt(0)) == '1'){
int length= a.length();
String sum="";
for (int i=0; i<=length; i++){
int b=0;
char result = a.charAt(b);
b++;
if(result == 0){
result=1;
}else{
result=0;
}
sum= sum + result;
}
int num= Integer.parseInt(sum, 2);
num= num+1;
num*= -1;
return num;
}else{
int decimalInt = Integer.parseInt(a, 2);
return decimalInt;
}
}
...
這裏是個例外:
Exception in thread "main" java.lang.NumberFormatException: For input string: " "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:481)
at BinaryToInstruction.decimal(BinaryToInstruction.java:193)
at BinaryToInstruction.main(BinaryToInstruction.java:83)
什麼是(BinaryToInstruction.java:193)? –
也許你是在做這個學習練習,但是你知道'Integer.parseInt(String str,int radix)'?它做你正在努力完成的事情。 – jalynn2
我試過這個,但是它只在二進制數是16位時才起作用。我錯了嗎 ??我嘗試了很多次,但失敗了。最後,我決定寫我自己的代碼:) – user3075117