二进制转十六进制
第一种方法是先把二进制转换为十进制,然后十进制再转换为十六进制。十进制转换为二进制或十六进制的方法差不多,给定十进制数m=Hn * 16^n+Hn-1 * 16^(n-1) +……+H1 * 16^1+H0 * 16^0.那么H0=m%16;
m/16 = Hn * 16^(n-1)+Hn-1 * 16^(n-2) +……+H1,H1=m/16%16;
m/(16^k)= Hn * 16^(n-k)+Hn-1-k * 16^(n-2-k) +……+Hk,Hk=m/(16^k)%16;代码实现
public static String binaryToHex(String binaryString)
{
StringBuilder re = new StringBuilder();
//先转十进制
int num = Integer.parseInt(binaryString);
do
{
int t = num%16;
num/=16;
if(t10,B->11,C->12,D->13,E->14,F->15
}while(num!=0);
return re.toString();
}
还有一种方法,二进制每四位对应一个十六进制位的数,如0001对应1,1010对应A,可以每次提取四位,然后转换,如果给定的二进制字符串不是4的倍数,可以在字符串前补足0,达到位数是4的倍数。代码如下:
public static String binaryToHex(String binaryString)
{
String result= "";
String temp = "";
int length = binaryString.length();
int i = length%4;
//补足0,达到位数是4的倍数
if(i>0)
{
for(int j=0;j |