import java.util.Scanner; public class P2031 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char chs[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//最大十六进制所有的数 while(sc.hasNext()){ int n = sc.nextInt(); //需要转换的数 int r = sc.nextInt(); //需要转换的进制 boolean isNegative = false; //用来判断是否有负数 if(n<0){ n=-n; isNegative = true; } String str = ""; while(n/r>0){ str = chs[n%r]+str; //每次把算出来的加到结果的前面 n = n/r; } if(n%r!=0){ //如果不能除尽,则运行这个,把余数加入结果的最前面 str = chs[n%r]+str; } if(isNegative){ //只有存在复数才执行,在结果中添加负号 str = "-" + str; } System.out.println(str); } } }
原文地址:http://blog.csdn.net/xionghui2013/article/details/45628561