面试算法题:十进制转十三进制输出

贴出代码,见笑了,大家可以贴出更高效的计算方式相互交流~

public static String transfer(int decimalNum) { StringBuffer result = new StringBuffer(); //保存最终结果 Boolean negative = false; //是否为负数 int temp = decimalNum; //中间变量,迭代做除法 if(temp==0) return “0”; //十进制为0返回0 else if(temp<0) { //为负数,转为正数运算并置negative为true negative = true; temp = -1 * temp; } while (temp > 0) { //进入迭代,每次除13,取余数 int left = temp % 13; char current = ‘0’; switch (left) { case 10: current = ‘A’; break; case 11: current = ‘B’; break; case 12: current = ‘C’; break; default: current = Integer.toString(left).charAt(0); break; } result.insert(0, current); temp /= 13; //一次迭代完成,保存商进入下次迭代 } if(negative) result.insert(0, “-“); return result.toString(); }

    原文作者:进制转换
    原文地址: https://blog.csdn.net/hzzhoushaoyu/article/details/6339884
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞