我是靠谱客的博主 独特长颈鹿,最近开发中收集的这篇文章主要介绍java 实现各种进制之间相互转换一、概述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、概述

java进行进制转换,学习到的一个转换方法;

0b开头默认是二进制

0开头默认是八进制

整数默认是10进制

0x开头默认是16进制

1. x进制转10进制

方法为  每一位的 数值 * x的(总长度-1-i次方) 的和:

如 二进制的 10101  转10进制,则结果为 1*2的4次方 + 0 + 1*2的2次方 + 0 + 1*2的0次方 = 21

如 8进制的  72   转10进制,则结果为 7*8的1次方+2*8的0次方 = 58

2. 10进制转x进制

方法为 直接用数值除以 x 得到余数追加到字符串,直到最后除数为0为止,然后字符串倒叙,则是对应的进制的结果

如1   0转二进制 则  10/2 商 5 余 0

                                5/2 商 2 余 1

                                2/2 商 1 余 0

                                1/2 商 0 余 1

                                除数为0,结束;结果为1010

如10    转8进制 则  10/8 商 1 余 2

                                2/8 商 0 余 1

                                除数为0,结束;结果为12

2. x进制转y进制

方法为 先将x进制转换为10进制,再将转换得到的10进制转换为y进制

如 二进制的1010 转 8进制;先转为10进制=10,然后再转为 8进制=12

3. 代码

    //进制转换
    public static void main(String[] args){
        System.out.println(xToYScale("12", 10, 2));
        System.out.println(xToYScale("12", 16, 2));
        System.out.println(xToYScale("1010", 2, 10));
        System.out.println(xToYScale("144", 8, 16));
    }

    private static String xToYScale(String str, int oldScale, int toScale){
        StringBuilder result = new StringBuilder();
        if(toScale == 10){
            int num = 0;
            for(int i = 0; i < str.length(); i++){
                num = num + Integer.parseInt(String.valueOf(str.charAt(i))) * (int)Math.pow(oldScale, str.length() - 1 - i);
            }
            result.append(num);
        }else if(oldScale == 10){
            int num = Integer.parseInt(str);
            while (num != 0){
                result.insert(0, num % toScale);
                num = num / toScale;
            }
        }else{
            int num = 0;
            for(int i = 0; i < str.length(); i++){
                num = num + Integer.parseInt(String.valueOf(str.charAt(i))) * (int)Math.pow(oldScale, str.length() - 1 - i);
            }
            while (num != 0){
                result.insert(0, num % toScale);
                num = num / toScale;
            }
        }
        return result.toString();
    }

最后

以上就是独特长颈鹿为你收集整理的java 实现各种进制之间相互转换一、概述的全部内容,希望文章能够帮你解决java 实现各种进制之间相互转换一、概述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部