我想写一个程序,使用数组将二进制转换为十进制。这是我到目前为止编写的代码:
read.exe 1000318.simb > [auto].txt
答案 0 :(得分:0)
int decimal = 0;
int power = 0;
for(int i = 0 ; i < ConValue.length ; i++){
int tmp = ConValue[i]%10;
decimal += tmp*Math.pow(2, power);
power++;
}
System.out.println(decimal);
在for循环后添加。这假设用户从右向左输入字符串,更改这应该很容易。它可以工作,但如果用户只输入一个简单的二进制字符串而不是二进制的每个元素,它将更容易。
答案 1 :(得分:0)
这很容易理解。
import java.util.*;
class Power{
int pow(int base , int exponent)
{
int result = 1;
while( exponent != 0)
{
result *= base;
--exponent;
}
return result;
}
}
class Decimal{
Power obj = new Power();
int dec(int x []){
int decimal = 0; int exp = 0;
for( int i = x.length - 1; i > -1; i--){
decimal += x[i] * obj.pow(2, exp);
exp++;
}
return decimal;
}
}
class code{
public static void main(String [] args){
Decimal DecObj = new Decimal();
int bin[]= {0,0,1,1,1};
System.out.println(DecObj.dec(bin));
}
}
答案 2 :(得分:-1)
这是代码在Java中将数字二进制转换为十进制。
import java.util.*;
public class HelloWorld {
static int btod(int n) {
int count = 0;
int mul = 1;
while(n != 0) {
int dig = n%10;
count+= dig * mul;
n /= 10;
mul *= 2;
}
return count;
}
public static void main(String []args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println("Results: " + HelloWorld.btod(n));
}
}