java中有10进制转换16进制的方法:Integer.toHexString(int a)
暂时没有找到10进制转换16进制的方法,朋友问起我来,就随手写了一个简单的转换,有一定的限制性.
public static int[] Ten2Sixth(String ten) {
//这里有一定的限制性,解析是以空格隔开的一串字符串.
String[] str = ten.split(" ");
int[] temp = new int[str.length];
for(int i=0;i<str.length;i++) {
//------------1
String strTemp1 = str[i].substring(0, 1);
String strTemp2 = str[i].substring(1, 2);
int intTemp1 = 0;
int intTemp2 = 0;
try{
intTemp1 = Integer.parseInt(strTemp1);
}catch (Exception e) {
if(strTemp1.equals("A")){
intTemp1 = 10;
}else if(strTemp1.equals("B")){
intTemp1 = 11;
}else if(strTemp1.equals("C")){
intTemp1 = 12;
}else if(strTemp1.equals("D")){
intTemp1 = 13;
}else if(strTemp1.equals("E")){
intTemp1 = 14;
}else{
intTemp1 = 15;
}
}
try{
intTemp2 = Integer.parseInt(strTemp2);
}catch (Exception e) {
if(strTemp2.equals("A")){
intTemp2 = 10;
}else if(strTemp2.equals("B")){
intTemp2 = 11;
}else if(strTemp2.equals("C")){
intTemp2 = 12;
}else if(strTemp2.equals("D")){
intTemp2 = 13;
}else if(strTemp2.equals("E")){
intTemp2 = 14;
}else{
intTemp2 = 15;
}
}
temp[i] = intTemp1*16+intTemp2*1;
}
return temp;
}
另外上边是针对正确格式的16进制,对于错误格式的,比如其中有G X等这些超过了F所表示的,一律默认为15,对于三个数字这样的错误格式,没有做处理,可以在文章注释“-------1”处做一个判断即可!