方式一
最简单的方式调用Integer类的现成方法
public class test02 {
public static void main(String[] args) {
int i = 60;
// 把60转换为十六进制或二进制,调用Integer类现成的方法
String ss = Integer.toHexString(i);
System.out.println(ss);
System.out.println(Integer.toBinaryString(i));
}
}
方式二
用java实现底层的思路
看图:
可以先通过 &(与) 15 先获得60的最低4位的值,再对60右移 << ,然后再次 & 15 获得高四位值。
Q:如何把相 & 获得的值转换为十六进制呢?
char c = ‘a’;
char c1 =(char)(c + 2);
System.out.println(c1); //c
这个思路,则:
public class test02 {
public static void main(String[] args) {
int j = i & 15;//1,获得i最低四位二进制,对应的十进制值为j=12
String k1 = (j<=9)? j + "" : (char)(j-10+'a')+"";//把j转换为十六进制
System.out.println(k1); //c
i = i >> 4;//60先右移
int z = i & 15; //获得高四位值
String k2 = (z<=9)? z + "" : (char)(j-10+'a')+"";
System.out.println(k2 + k1); //3c
}
}
对于int型,字节为4,对于更大int数值,只要右移、循环多次就好。