# A question in flipping a number

## Main Question or Discussion Point

i was told to build a program that transforms a number from deximal basis
into binary basis

i have built it but i get the resolt reversed
for the number 4 i get 001 instead of 100
i know it happening because the last digit comes last

how to change this method so it will show me the right resolt??

Code:
public class binar {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
binary(4);
}
public static void binary(int n){
binar(n,"");
}
public static void binar(int n,String str){
if (n==0){
System.out.println(str);
}
else
binar((int)Math.floor(n/2),str+(n%2));
}
}

Related Programming and Computer Science News on Phys.org
CRGreathouse
Homework Helper
That's pretty inefficient there!

In any case, your problem is that str is the end of your string, not the start. Reverse the order that you're appending them.

how can i reverse the order??

CRGreathouse
Homework Helper
Look at the last line of your code (other than the two }s), it should be pretty obvious. You're sticking it on the wrong end.

thanks

Eus
i was told to build a program that transforms a number from deximal basis
into binary basis
If you use Java, you can just use its built-in function to do so:
Code:
int fromBase = 10;
int toBase = 2;

Integer.toString (Integer.parseInt (args [0], fromBase), toBase);
Next, you can just run your program conveniently like:
Code:
java BaseNToMConverter 82733
Best regards,
Eus