进制转换
Posted 超人不会飞丿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进制转换相关的知识,希望对你有一定的参考价值。
private static String hexString = "0123456789ABCDEF"; /** * @Title:bytes2HexString * @Description:字节数组转16进制字符串 * @param b * 字节数组 * @return 16进制字符串 * @throws */ public static String bytesToHexString(byte[] src) { StringBuilder stringBuilder = new StringBuilder(""); if (src == null || src.length <= 0) { return null; } for (int i = 0; i < src.length; i++) { int v = src[i] & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } /** * @Title:hexString2Bytes * @Description:16进制字符串转字节数组 * @param src * 16进制字符串 * @return 字节数组 * @throws */ public static byte[] hexString2Bytes(String src) { int l = src.length() / 2; byte[] ret = new byte[l]; for (int i = 0; i < l; i++) { ret[i] = (byte) Integer .valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue(); } return ret; } /* * 将字符串编码成16进制数字,适用于所有字符(包括中文) */ public static String encode(String str) { // 根据默认编码获取字节数组 byte[] bytes = str.getBytes(); StringBuilder sb = new StringBuilder(bytes.length * 2); // 将字节数组中每个字节拆解成2位16进制整数 for (int i = 0; i < bytes.length; i++) { sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4)); sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0)); } return sb.toString(); } /* * 将COM*转换为对应的数字*,如COM1为1 */ public static int ComTransInt(String str) { int port = 0; if (!(str == null || ("".equals(str)))) { if (str.toUpperCase().contains("COM")) { port = Integer.parseInt(str.substring(3)); } else if (str.toUpperCase().contains("USB")) { port = 0; } else { port = -1; } } else { port = -1; } return port; } /* * 将16进制数字解码成字符串,适用于所有字符(包括中文) */ public static String decode(String bytes) { ByteArrayOutputStream baos = new ByteArrayOutputStream( bytes.length() / 2); // 将每2位16进制整数组装成一个字节 for (int i = 0; i < bytes.length(); i += 2) baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString .indexOf(bytes.charAt(i + 1)))); return new String(baos.toByteArray()); }
以上是关于进制转换的主要内容,如果未能解决你的问题,请参考以下文章
sql 日期转换代码片段 - Dato,120,konvertere
android.view.InflateException:二进制 XML 文件第 15 行:二进制 XML 文件第 19 行:膨胀类片段时出错