Java进制转换

来源:互联网 发布:vb小程序代码 编辑:程序博客网 时间:2024/06/04 18:11

1.实现的功能

实现从进制A转换到进制B

2.工具类

/** * Function:进制转换 * Created by xuzhuyun on 2017/12/8. */public class Operation {    /**     * 总进制转换     *     * @param typeFrom     从进制     * @param typeTo       到进制     * @param transferText 需要转换的数     * @return     */    public String transfer(String typeFrom, String typeTo, String transferText) {        return from10(typeTo, to10(typeFrom, transferText));    }    /**     * 转10进制     *     * @param from1 从进制     * @param txt   要转换的数     * @return 转换后结果     */    private int to10(String from1, String txt) {        int from = Integer.parseInt(from1);        int sum = 0;        int i = txt.length() - 1;        int leng = i;        while (i >= 0) {            // 判断输入文本的当前取出的char值是数字,并且值不为0            if (Character.isDigit(txt.charAt(i))) {                if (txt.charAt(i) != '0') {                    int temp = Integer.parseInt(String.valueOf(txt.charAt(i)));                    for (int j = 0; j < leng - i; j++) {                        temp *= from;                    }                    sum += temp;                }            } else {                int temp = 0;                switch (txt.charAt(i)) {                    case 'A':                        temp = 10;                        break;                    case 'B':                        temp = 11;                        break;                    case 'C':                        temp = 12;                        break;                    case 'D':                        temp = 13;                        break;                    case 'E':                        temp = 14;                        break;                    case 'F':                        temp = 15;                        break;                    default:                        return 0;                }                for (int j = 0; j < leng - i; j++) {                    temp *= from;                }                sum += temp;            }            i--;        }        return sum;    }    /**     * 从10进制转为其他进制     *     * @param to1 要转换后的进制     * @param num 要转的10进制数     * @return 转换后的值(String)     */    private String from10(String to1, int num) {        int to = Integer.parseInt(to1);        String jg = "";        while (num != 0) {            switch (num % to) {                case 10:                    jg = "A" + jg;                    break;                case 11:                    jg = "B" + jg;                    break;                case 12:                    jg = "C" + jg;                    break;                case 13:                    jg = "D" + jg;                    break;                case 14:                    jg = "E" + jg;                    break;                case 15:                    jg = "F" + jg;                    break;                default:                    jg = String.valueOf(num % to) + jg;                    break;            }            num = num / to;        }        return jg;    }}


原创粉丝点击