您的位置:首页 > 其它

将十六进制转换成二进制或十进制

2012-03-02 17:22 399 查看
/**

* 将16进制转换成二进制

*

* @param hexValue

* @return

*/

public static String convertHexToBinary(String hexValue)

{

StringBuilder sb = new StringBuilder();

hexValue = getStringNoNull(hexValue);

for (int i = 0; i < hexValue.length(); i++)

{

String hex = hexValue.charAt(i) + "";

int hexIndex = getIndex(hex, HEX_VALUE);

sb.append(HEX_BINVALUE[hexIndex]);

}

return sb.toString();

}

/**

* 将16进制转换为十进制

*

* @param hexValue

* @return

*/

public static String convertHexToAlgorism(String hexValue)

{

String result = getStringNoNull(hexValue);

// 将16进制转换为2进制

result = convertHexToBinary(hexValue);

// 将2进制转换为10进制

result = convertBinaryToAlgorism(result) + "";

return result;

}

/**

* 将二进制数值转换为10进制

* 如 11111111 转换为 255<br>

*

* @param binaryNum 二進制數

* @return

*/

public static int convertBinaryToAlgorism(String binaryNum)

{

// 结果

Double result = 0d;

// 存放为1的索引对应的次幂

List<Integer> powIndex = new ArrayList<Integer>();

for (int i = 0; i < binaryNum.length(); i++)

{

if ('1' == binaryNum.charAt(i))

{

powIndex.add((binaryNum.length() - (i + 1)));

}

}

// 得到对应结果如 10000000 得 128

for (int i = 0; i < powIndex.size(); i++)

{

result += Math.pow(2, powIndex.get(i));

}

return result.intValue();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: