码迷,mamicode.com
首页 > 其他好文 > 详细

【实操】进制转换:除基倒取余法

时间:2018-06-18 22:41:52      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:math   函数   line   border   style   eve   结束   spl   原理   

一、原理:除基倒取余法

以10进制转2进制为例:输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数。
所有进制之间的转换都是如此,2可以换成任何数字。十进制转二进制、八进制、十六进制、64进制,全部如下。

二、具体的JAVA实现:

2.1 10进制数字转n进制:

public class Main {

    public static void main (String[] args) {
        int n = 64;//需要转换的数字
        int m = 5; //转换的进制(如果大于10,需考虑使用其他字符表示)

        int t = 0;  //用来记录位数
        int bin = 0; //用来记录最后的二进制数
        int r = 0;  //用来存储余数
        while(n != 0){
            r = n % m;
            n = n / m; //注意:n为int,可以保证其肯定是一个整数,且是进制转换需要的整数
            bin += r * Math.pow(10,t); //pow函数:10的t次方
            t++;
        }
        System.out.println(bin);
    }
}

2.2 n进制数字转10进制:

public class Main {

    public static void main (String[] args) {
        int n = 224;//需要转换的数字
        int m = 2; //进制
        int des = 0; //储存转换后的结果

        String s = new StringBuilder(String.valueOf(n)).reverse().toString();  //reverse使字符串倒序
        for (int i = 0 ;i<s.length();i++){
            int charIndex = s.charAt(i)-‘0‘;
            des += charIndex*Math.pow(m, i);
        }

        System.out.println(des);
    }
}

【实操】进制转换:除基倒取余法

标签:math   函数   line   border   style   eve   结束   spl   原理   

原文地址:https://www.cnblogs.com/buwuliao/p/9196544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!