java十进制数字转十六进制(int类型太大无法转换,把int类型转为Long类型计算)

// 本文介绍的主要是java十进制数字类型转十六进制,由于十进制超出范围的问题。将超出范围的的数字转换为Long类型

 ,然后进行计算,同样可得到结果


package com.java.test;

public class JinZhi{
   public static void main(String args[]){
      JinZhi t = new JinZhi();
      String a = t.t1(1000L);
      System.out.println(a);
   }
   
   
   //把a转成指定进制
   private String t2(int a,int n){
      String str = “”;
      //1:用a去除以n,得到商和余数
      int sun = a/n;
      int yuShu = a%n;
      str = “”+shuZhiToZhiMu(String.valueOf(yuShu));
      while(sun > 0 ){
         //2:继续用商去除以n,得到商和余数
         yuShu = sun % n;
         sun = sun / n;         
         //3:如果商为0,那么就终止         
         //4:把所有的余数倒序排列
         str = shuZhiToZhiMu(String.valueOf(yuShu)) + str;
      }
      System.out.println(n+”进制===”+str);
      return str;
   }
   //写一个方法实现:把一个十进制的数转换成为16进制的数
   private String t1(Long a){
      String str = “”;
      //1:用a去除以16,得到商和余数
      Long sun = a/(16L);
      Long yuShu = a%16L;
      str = “”+shuZhiToZhiMu(String.valueOf(yuShu));
      while(sun > 0 ){
         //2:继续用商去除以16,得到商和余数
         yuShu = sun % 16;
         sun = sun / 16;         
         //3:如果商为0,那么就终止         
         //4:把所有的余数倒序排列
         str = shuZhiToZhiMu(String.valueOf(yuShu)) + str;
      }
      System.out.println(“16进制===”+str);
      return str;
   }
   
   private String shuZhiToZhiMu(String a){ 
      switch(a){   //若jdk版本switch不支持String,可以将String转换为int类型后判断
         case “10” :
            return “a”;
         case “11” :
           return “b”;
         case “12” :
           return “c”;
         case “13” :
           return “d”;
         case “14” :
           return “e”;    
         case “15” :
           return “f”;  
      }
      return “”+a;
   }
}

    原文作者:进制转换
    原文地址: https://blog.csdn.net/the_thinnest/article/details/70139022
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞