一个超长字符串表示的十进制数转化为十六进制的字符串

因为是超长,不能简单的使用二进制后变16进制,或者直接除

我们可以还原成除法计算的步骤进行代码实现。


public class 一个超长字符串表示的十进制数转化为十六进制的字符串 {

//初始化十六进制的卡位

    String[] str = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};

    

public static void main(String[] args) {

// 测试值

String test = "123456";

一个超长字符串表示的十进制数转化为十六进制的字符串  demo = new 一个超长字符串表示的十进制数转化为十六进制的字符串();

demo.change(test);

}

/**

* 递归

* 基本的除16,余数的计算方法的代码实现

*/

public void change(String s){

String s1 ="";//除16后剩下的数,用于下一趟计算

char[] testChar = s.toCharArray();

int len = testChar.length;

int num = Integer.parseInt(testChar[0]+"");

for (int i = 1; i <len; i++) {

//从高位开始取两位数进行除16

num = num* 10  + Integer.parseInt(testChar[i]+"");

if(num>=16){

//记录每次除后的值,进行拼接

s1 +=  num/16;

//余数与下一个位置形成一个新的两位数再进行除16

num = num % 16;

}else{

//若新的两位数小于16,则s1后面加0

s1 += 0;

}

}

//判断是否递归到尽头

if(Integer.parseInt(s1)<16){

System.out.print(str[Integer.parseInt(s1)]);

}else{

//递归下一轮除法

change(s1);

}

System.out.print(str[num]);

}



本文出自 “DamenMai学习之路” 博客,转载请与作者联系!

你可能感兴趣的:(超长字符串,十进制数转化为十六进制)