美文网首页
校验&进制转化

校验&进制转化

作者: hao_developer | 来源:发表于2022-02-22 20:14 被阅读0次

在线进制转化

image.png

在线时间戳

image.png

CRC

image.png

LRC校验

image.png

BCC校验

image.png

十进制转十六进制:

String.format("%04X",8755)  十六进制结果:2233

十六进制转十进制:

new BigInteger("2233",16).intValue()  十进制结果:8755

十六进制转字节数组或获取最后一个:

/**
     * 十六进制转字节
     * @param src
     * @return
     */
    public byte hexString2Byte(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();
        }
        if(ret.length > 1) {
           return ret[1];
        } else {
            return ret[0];
        }
    }

字节数组转十六进制字符串

 /**
     * 数组转换成十六进制字符串
     * @param bArray
     * @return sb.toString()
     */
    public String bytesToHexString(byte[] bArray) {
        StringBuffer sb = new StringBuffer(bArray.length);
        String sTemp;
        for (int i = 0; i < bArray.length; i++) {
            sTemp = Integer.toHexString(0xFF & bArray[i]);
            if (sTemp.length() < 2)
                sb.append(0);
            sb.append(sTemp.toUpperCase());
        }
        return sb.toString();
    }

Java中16进制与字符串之间的相互转换

字符串转化为Unicode编码

/**
 * 字符串转换unicode
 */
public static String string2Unicode(String string) {
  StringBuffer unicode = new StringBuffer();
  for (int i = 0; i < string.length(); i++) {
    // 取出每一个字符
    char c = string.charAt(i);
    // 转换为unicode
    unicode.append("\\u" + Integer.toHexString(c));
  }
  return unicode.toString();
}

字符串转为16进制

/**
 * 字符串转化成为16进制字符串
 * @param s
 * @return
 */
public static String strTo16(String s) {
    String str = "";
    for (int i = 0; i < s.length(); i++) {
        int ch = (int) s.charAt(i);
        String s4 = Integer.toHexString(ch);
        str = str + s4;
    }
    return str;
}

16进制转为字符串

/**
 * 16进制转换成为string类型字符串
 * @param s
 * @return
 */
public static String hexStringToString(String s) {
    if (s == null || s.equals("")) {
        return null;
    }
    s = s.replace(" ", "");
    byte[] baKeyword = new byte[s.length() / 2];
    for (int i = 0; i < baKeyword.length; i++) {
        try {
            baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    try {
        s = new String(baKeyword, "UTF-8");
        new String();
    } catch (Exception e1) {
        e1.printStackTrace();
    }
    return s;
}

Unicode转为字符串

/**
 * unicode 转字符串
 */
public static String unicode2String(String unicode) {
    StringBuffer string = new StringBuffer();
    String[] hex = unicode.split("\\\\u");
    for (int i = 1; i < hex.length; i++) {
        // 转换出每一个代码点
        int data = Integer.parseInt(hex[i], 16);
        // 追加成string
        string.append((char) data);
    }
    return string.toString();
}

字符串转16进制

/**
 * 字符串转换成为16进制(无需Unicode编码)
 * @param str
 * @return
 */
public static String str2HexStr(String str) {
    char[] chars = "0123456789ABCDEF".toCharArray();
    StringBuilder sb = new StringBuilder("");
    byte[] bs = str.getBytes();
    int bit;
    for (int i = 0; i < bs.length; i++) {
        bit = (bs[i] & 0x0f0) >> 4;
        sb.append(chars[bit]);
        bit = bs[i] & 0x0f;
        sb.append(chars[bit]);
        // sb.append(' ');
    }
    return sb.toString().trim();
}

16进制转为字符串

/**
 * 16进制直接转换成为字符串(无需Unicode解码)
 * @param hexStr
 * @return
 */
public static String hexStr2Str(String hexStr) {
    String str = "0123456789ABCDEF";
    char[] hexs = hexStr.toCharArray();
    byte[] bytes = new byte[hexStr.length() / 2];
    int n;
    for (int i = 0; i < bytes.length; i++) {
        n = str.indexOf(hexs[2 * i]) * 16;
        n += str.indexOf(hexs[2 * i + 1]);
        bytes[i] = (byte) (n & 0xff);
    }
    return new String(bytes);
}

相关文章

网友评论

      本文标题:校验&进制转化

      本文链接:https://www.haomeiwen.com/subject/pxtnlrtx.html