趣闻进制转换

  1. 输入一个十进数,将其转换成 N (大于0小于16)进制数
public class text5 {
    /**
     * 输入一个十进数,将其转换成 N 进制数(0<N<=16)。
     */
    public static void main(String[] args) {
        char arr[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A','B', 'C', 'D', 'E', 'F' };
        Scanner scanner = new Scanner(System.in);
        int k = Integer.parseInt(scanner.next());
        int k1 = Integer.parseInt(scanner.next());
        String p = "";
        char arr1[] = new char[k1];
        for (int i = 0; i < k1; i++) {
            arr1[i] = arr[i];
        }
        while (k != 0) {
            int d = k % k1;
            p += arr[d];
            k = k / k1;
        }
        for (int i = p.length() - 1; i >= 0; i--) {
            System.out.print(p.charAt(i));
        }
    }
}

2.输入两个正整数X,Y,将X,Y化为二进制数,然后将这两个二进制数作二进制加法运算,再将结果化为十进制数输出

public class text8 {
    /**
     * 输入两个正整数X,Y,将X,Y化为二进制数, 然后将这两个二进制数作二进 制加法运算,再将结果化为十进制数输出。
     */
    private static ArrayList<Integer> list = new ArrayList<Integer>();

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int k = Integer.parseInt(scanner.next());
        int k1 = Integer.parseInt(scanner.next());
        String str = Integer.toBinaryString(k);// 将十进制的数字转换为二进制(系统)
        String str1 = Integer.toBinaryString(k1);
        add(str, str1);
        String str3 = "";
        for (int j = list.size() - 1; j >= 0; j--) {
            str3 += list.get(j).toString();
        }
        System.out.println(ZH2_10(str3));
    }

    // 两个二进制的数字相加(转换成十进制的数字返回)
    public static void add(String str, String str1) {
        int k = Integer.parseInt(str);
        int k1 = Integer.parseInt(str1);
        System.out.println(k);
        System.out.println(k1);
        int d = 0, d1 = 0;
        while (k != 0 || k1 != 0) {
            d = k % 10;
            d1 = k1 % 10;
            if (d + d1 > 1) {
                list.add(10);
            } else if (d + d1 == 1) {

                list.add(1);
            } else if (d + d1 == 0) {
                list.add(0);
            }
            k = k / 10;
            k1 = k1 / 10;
        }
    }

    // 将二进制的数字转换为十进制(自定义)
    public static int ZH2_10(String str) {
        int k = 0;
        int n = 0;
        for (int i = 0; i < str.length(); i++) {
            k += Math.pow(2, n);
            n++;
        }
        return k;
    }
}

3.代码把16进制表示的串转换为3进制表示的串

public class text8 {
    /**
     * 代码把16进制表示的串转换为3进制表示的串
     */
    public static void main(String[] args) {
        System.out.println(jin_zhi_16_3("c"));
    }

    private static int getRealValue(char x) {
        if (x >= '0' && x <= '9')
            return x - '0';
        if (x >= 'a' && x <= 'f')
            return x - 'a' + 10;
        if (x >= 'A' && x <= 'F')
            return x - 'A' + 10;
        return 0;
    }

    public static String jin_zhi_16_3(String x) {
        int n = 0; // 累加真值
        for (int i = 0; i < x.length(); i++) {
            n = n + getRealValue(x.charAt(i)); // 填空
        }
        String t = "";
        for (;;) {
            if (n == 0)
                break;
            t = (n % 3) + t;
            n = n / 10; // 填空
        }
        return t;
    }

}

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

猜你喜欢

转载自u012081441.iteye.com/blog/2382943