# Java Program Help

1. Nov 16, 2004

Hello all:

I need to write a program that takes an array of 0's and 1's and converts them into base 10 numbers. Here is my code, but I cant get it to return the correct base 10 number.

Code (Text):
/*  This program returns a value in base 10 from an array of binary numbers.
*
*/

public class binary
{
public int convertBaseTen( int [] a) // method takes an array
{
int numValue=1;
int sum=0;
for(int i = 0; i< a.length; i++)   // loop through array a
{
if (a[i]==1)
{
sum+=numValue;
}
numValue*=2;
}
return numValue;
}
}
Any help is appreciated.

Thanks!

2. Nov 16, 2004

### mrjeffy321

dont just multiply the number in the array by 2, multiply it by 2^i
i being the integer varibale you are using in the loop to go through the array, because with eah successive element in the array, you are increasing by a power of 2.

for example if you have a number of lets say...5
5 = 101 in binary

101 = (1*2^0) + (0*2^4) + (1*2^2) = 5

if you loop through the array from lowest power of 2 to highest power of 2, and multiply the element by 2^i, and then keep a running total of all that, then you should get the correct answer.

3. Nov 17, 2004

### chronon

Shouldn't you return sum

4. Nov 17, 2004

Code (Text):
/*  This program returns a value in base 10 from an array of binary numbers.
*
*/

public class binary
{
public int convertBaseTen( int [] a) // method takes an array
{
int numValue=1;
int sum=0;
for(int i = 0; i< a.length; i++)   // loop through array a
{
if (a[i]==1)
{
sum+=numValue;
}
numValue*=2;
}
return numValue;
}
}
How would I write this program which takes in a boolean where true = 1, and false = 0?

Example:

{true, true, false, true} = [1,1,0,1] and then convert this into base 10? Should I use math.pow?

Thanks

5. Nov 17, 2004

any ideas?

6. Nov 21, 2004

### The Idiot

1st, return sum, not numValue.

Also, for a boolean array, your if statement would be if(a).

Another thing, is {1,1,0,1} representing 1101 or 1011? (Binary). If it's the second option, changing the return value to sum should be all that needs fixing. If not, you should start at a.length - 1 and go down to (and including) 0 at the array. Then it will calculate the last value and go to the first. In {1,1,0,1} would start at the last 1.

Hope that helped!