前言:
这道题就是一个简单的进制转换,在网上看到了这道题,所以就写一下,在此记录一下。
题目描述
输入一个二进制数,将其转换为十进制数。
题目解析
这道题,就是一个进制转换的问题。从二进制第一位数开始求十进制数,如图所示:
代码样例
package com.asong.leetcode.BinarytoDecimal;
import java.util.Scanner;
/**
* 二进制转10进制
*/
public class Solution {
public int BinaryToDecimal(int[] array)
{
if(array==null && array.length==0)
{
return 0;
}
int result = 0;
int index = array.length-1;
for (int i = index; i >=0; i--) {
if(array[i]>=0 && array[i]<=1)
{
if(array[i] == 1) {
result = result + (int) Math.pow(2.0,index-i);
}
}else {
return 0;
}
}
return result;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Solution solution = new Solution();
while(scanner.hasNext())
{
String string = scanner.nextLine();
String[] str = string.split(",");
int[] array = new int[str.length];
for (int i = 0; i < str.length; i++) {
array[i] = Integer.parseInt(str[i]);
}
int result =solution.BinaryToDecimal(array);
System.out.println(result);
}
}
}