A question in flipping a number

1,395
0

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

Answers and Replies

CRGreathouse
Science Advisor
Homework Helper
2,817
0
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.
 
1,395
0
how can i reverse the order??
 
CRGreathouse
Science Advisor
Homework Helper
2,817
0
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.
 
1,395
0
thanks
 
Eus
94
0
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
 
Top