二进制数值转换成十六进制

/**
* 将二进制数值转换成16进制 如1000 得到16进制 8 1111 得到16进制 F
*
* @param binaryValue
* @return
*/
public static String convertBinaryToHex(String binaryValue)
{
StringBuilder res = new StringBuilder();
StringBuilder sb = new StringBuilder(binaryValue);

while (sb.length() % 4 != 0)
{
sb.insert(0, "0");
}
for (int i = 0; i < sb.length() / 4; i++)
{
int start = i * 4;
int end = (i + 1) * 4;
String binValue = sb.substring(start, end);
int binIndex = getIndex(binValue, HEX_BINVALUE);
res.append(HEX_VALUE[binIndex]);
}
return res.toString();
}

/**
* 十六进制(对应二进制值)
*/
private static String[] HEX_BINVALUE = {"0000", "0001", "0010", "0011",
"0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011",
"1100", "1101", "1110", "1111"};

/**
* 十六进制值
*/
private static String[] HEX_VALUE = {"0", "1", "2", "3", "4", "5", "6",
"7", "8", "9", "A", "B", "C", "D", "E", "F"};

你可能感兴趣的:(二进制数值转换成十六进制)