Java~二进制、八进制、十进制、十六进制和任意进制之间的进制转换

Integer对象的实现方式

10进制转2进制 Integer.toBinaryString(n); 返回一个二进制字符串.
10进制转8进制 Integer.toOctalString(n); 返回一个八进制字符串
10进制转16进制 Integer.toHexString(n); 返回一个16进制字符串
10进制转 any 进制 Integer.toString(n, any); 返回一个any进制字符串

import java.util.Scanner;

public class BaseConversion {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {

            int n = scanner.nextInt();

            String tenToTwo = Integer.toBinaryString(n);
            System.out.println("10进制转2进制:" + tenToTwo);

            String tenToEight = Integer.toOctalString(n);
            System.out.println("10进制转8进制:" + tenToEight);

            String tenToSixteen = Integer.toHexString(n);
            System.out.println("10进制转16进制:" + tenToSixteen);

            String tenToAny = Integer.toString(n, 5);
            System.out.println("10进制转 Any 进制:" + tenToAny);
        }
    }
}

在这里插入图片描述

  • any进制到10进制

radix进制的字符串s转10进制 Integer.parseInt((String) s,(int) radix);

import java.util.Scanner;

public class BaseConversion {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNext()) {
            String s = scanner.nextLine();

            int num = Integer.parseInt(s, 2);
            System.out.println("二进制转10进制:" + num);

            String s1 = scanner.nextLine();
            int num1 = Integer.parseInt(s1, 8);
            System.out.println("8进制转10进制" + num1);
        }
    }
}

在这里插入图片描述

手动实现方式

  • 十进制转二进制
    方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
  • 二进制转十进制
    方法为:把二进制数按权展开、相加即得十进制数。
  • 二进制转八进制
    方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
  • 八进制转成二进制
    方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。
  • 二进制转十六进制
    方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)
  • 十六进制转二进制
    方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
  • 十进制与八进制与十六进制之间的转换
    十进制转八进制或者十六进制有两种方法
    第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。
    第二:把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。
  • 八进制或者十六进制转成十进制
    方法为:把八进制、十六进制数按权展开、相加即得十进制数。
  • 十六进制与八进制之间的转换
    八进制与十六进制之间的转换有两种方法
    第一种:他们之间的转换可以先转成二进制然后再相互转换。
    第二种:他们之间的转换可以先转成十进制然后再相互转换。

PS: 参考于百度百科和课本

猜你喜欢

转载自blog.csdn.net/Shangxingya/article/details/107187544