public class HEXTODE {
//十进制转换为十六进制
public static String toHex(int num) {
if(num==0){
return "0";
}
String hex=new String("0123456789abcdef");
StringBuilder ans=new StringBuilder();
while(num!=0 && ans.length()<8){
ans.append(hex.charAt(num & 0xf));
num>>=4;
}
return ans.reverse().toString();
}
//十六进制转换为十进制
public static int hexToDecimal(String hex)
{
int decimalValue=0;
for(int i=0;i<hex.length();i++)
{
char hexChar=hex.charAt(i);
decimalValue=decimalValue*16+hexCharToDecimal(hexChar);
}
return decimalValue;
}
public static int hexCharToDecimal(char hexChar)
{
if(hexChar>='a'&&hexChar<='f')
return 10+hexChar-'a';
else
return hexChar-'0';//切记不能写成int类型的0,因为字符'0'转换为int时值为48
}
public static void main(String[] args) {
System.out.println(toHex(31));
System.out.println(hexToDecimal("1f"));
}
}