首页 > 编程语言 > 详细

Java实现进制转换

时间:2020-03-27 18:51:06      阅读:52      评论:0      收藏:0      [点我收藏+]

进制转换基础知识可以参考我的一篇博客:<a href=‘https://blog.csdn.net/Honeycomb_1/article/details/104828169‘></a>

以16进制转10进制为例:

方法一:十六进制先转化为二进制,然后再转化为10进制

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
    public static void main(String [] args){
      Scanner sc = new Scanner(System.in);
      String str = sc.next();///输入16进制
      String str1="";
      StringBuilder stringBuilder = new StringBuilder();
      for(int j=0;j< str.length();j++){
         str1 = Integer.toBinaryString(Integer.valueOf(str.charAt(j)+"",16));
         ///16进制的每一位转化为二进制
         while(str1.length()<4&&j!=0) str1="0"+str1;///加0
         stringBuilder.append(str1);///加入字符串容器中
      }
      int numtmp = 0;
       BigInteger value = new BigInteger("0");///BigInteger包装超大数据
       long valuetmp;
       for(int k = stringBuilder.length()-1;k>=0;k--){
          valuetmp = Integer.parseInt(stringBuilder.charAt(k)+"")*(long)Math.pow(2,numtmp);
          ///二进制中一位位转化为十进制

          value = value.add(BigInteger.valueOf(valuetmp));///a.add(b)为a+b
          numtmp++;
       }
       System.out.println(value);
    }
}

  

方法二:直接运用java库函数转换

import java.util.Scanner;

public class Main {
    public static void main(String [] args){
      Scanner sc = new Scanner(System.in);
      String str = sc.next();
      Long ans = Long.parseLong(str,16);
      System.out.println(ans);
    }
}

  

Java实现进制转换

原文:https://www.cnblogs.com/wszhu/p/12582810.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!