《java版进制转换》

Posted 太自由

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《java版进制转换》相关的知识,希望对你有一定的参考价值。

import java.util.Scanner;
class 十进制转成十六进制_2 
{
    public static void main(String[] args) 
    {
        int num = 0;
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个十进制的整数:");
        num = scan.nextInt();

        String str_bin = toBinary(num);
        String str_oct = toOctal(num);
        String str_hex = toHex(num);

        System.out.println("bin:"+str_bin);
        System.out.println("oct:"+str_oct);
        System.out.println("hex:"+str_hex);
    }

    //十进制转二进制
    public static String toBinary(int num)
    {
        return trans(num,1,1);
    }

    //十进制转八进制
    public static String toOctal(int num)
    {
        return "0"+trans(num,7,3);
    }

    //十进制转十六进制

    public static String toHex(int num)
    {
        return "0x"+trans(num,15,4);
    }
    
    //用于进制转换的功能.
    public static String trans(int num,int base,int offset)
    {
        if(num==0)
            return "0";
        //建表.
        char[] chs = {‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,
                        ‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,
                        ‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘};
        
        //创建临时容器。
        char[] arr = new char[8];

        int index = arr.length;

        while(num!=0)
        {
            int temp = num & base;
            
            arr[--index] = chs[temp];

            num = num >>> offset;
        }

        return toString(arr,index);
    }
    //定义一个功能,将字符数组转成字符串.
    public static String toString(char[] arr,int index){
        String temp = "";
        for(int x=index;x<arr.length;x++){
            temp = temp + arr[x];
        }
        return temp;
    }
}

技术分享

以上是关于《java版进制转换》的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C片段将十进制转换为二进制

实现各种进制转换(c++版)

java进制转换代码

第十四届蓝桥杯第二期模拟赛参考解析 (Java版)

Silverlight 中的十进制转换器无法正确处理丢失焦点

java里怎样把文件转换成二进制