Converting a number to base x
I'm trying to change a number i to a base k (1 < k < 17) It seems like my
numbers always get printed out backward example: i = 10, k = 2 returns
0101 Should be 1010
Code
long i = Long.parseLong(args[0]);
int k = Integer.parseInt(args[1]);
long v = 1;
while (v <= i/k) {
v *= k;
}
long n = i;
while (v > 0) {
//...
long res = (n % k);
n = n/k;
if(res == 11){
System.out.print("A");}
else if(res == 12){
System.out.print("B");}
else if(res == 13){
System.out.print("C");}
else if(res == 14){
System.out.print("D");}
else if(res == 15){
System.out.print("E");}
else if(res == 16){
System.out.print("F");}
else{
System.out.print(res);
}
v = v/k;
}
System.out.println();
No comments:
Post a Comment