前言:
这道题就是一个简单的进制转换,在网上看到了这道题,所以就写一下,在此记录一下。

题目描述

输入一个二进制数,将其转换为十进制数。

题目解析

这道题,就是一个进制转换的问题。从二进制第一位数开始求十进制数,如图所示:

[每日一道小算法(六十一)][进制转换] 二进制转十进制_leetcode

代码样例

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);
}
}
}