进制转换
题目:
思路:
首先我们要确定进行转换的数的可能性为三种,即负数,正数与0;
其次十进制以上的转化情况。例:11进制中,10用A表示,
然后最后考虑到的是获取进制数的顺序
代码示例:
import java.util.Stack;
public class Solution4 {
public static void main(String[] args) {
int M = 7, N = 2;
System.out.println(solve(M, N));
}
/**
* 进制转换
* 原理:
* 首先我们要确定进行转换的数的可能性为三种,即负数,正数与0;
* 其次十进制以上的转化情况。例:11进制中,10用A表示
*
* @param M int整型 给定整数
* @param N int整型 转换到的进制
* @return string字符串
*/
public static String solve(int M, int N) {
if (M == 0)
return "0";
StringBuffer str = new StringBuffer();
Stack<Integer> stack = new Stack<Integer>();
if (M < 0) {
str.append("-");
M = Math.abs(M);
}
while (M > 0) {
stack.push(M % N);
M = M / N;
}
int temp;
while (!stack.isEmpty()) {
temp = stack.pop();
if (temp > 9) {
str.append((char) (temp - 10 + 'A'));
} else {
str.append(temp);
}
}
return String.valueOf(str);
}
}