*18.23 (将二进制数转换为十进制数)
编写一个递归方法,将一个字符串形式的二进制数转换为一个十进制数。方法头如下:
java
public static int bin2Dec(String binarystring)
编写一个测试程序,提示用户输入一个二进制字符串,然后显示等价的十进制数。
代码示例
编程练习题18_23BinaryToDecimalConversion.java
java
package chapter_18;
import java.util.Scanner;
public class 编程练习题18_23BinaryToDecimalConversion {
private static int pow = 0;
private static int decimal = 0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a binary number: ");
String bin = input.next();
System.out.println(bin2Dec(bin));
input.close();
}
public static int bin2Dec(String binarystring) {
if(binarystring.length()==0)
return decimal;
char ch = binarystring.charAt(binarystring.length()-1);
int value = Integer.valueOf(ch+"");
decimal += value * (int)Math.pow(2, pow);
pow++;
return bin2Dec(binarystring.substring(0,binarystring.length()-1));
}
}
输出结果
java
Enter a binary number: 10110
22