Java中16进制byte与String,2进制,10进制,16进制的互相转换

前言

简书博客地址
GitHub https://github.com/MrQ-Android

最近在操作蓝牙的时候,记录一下常用的操作

目录

  1. 16进制的byte与String转换
  2. 16进制与10进制的互相转换
  3. 2进制与16进制的互相转换
  4. 2进制与10进制的互相转换
  5. 16进制转Ascii

1). 16进制的byte与String转换

16进制字符串转byte

String str = "A5";
byte res = (byte) Integer.parseInt(str, 16)

16进制byte转String字符串

String res = String.format("%02x", new Integer(b & 0xff)).toUpperCase()

2). 16进制转10进制的互相转换

16进制转10进制

/**
 * 16进制转10进制
 *
 * @param hex
 * @return
 */
public static int hex2decimal(String hex) {
    return Integer.parseInt(hex, 16);
}

10进制转16进制

/**
 * 10进制转16进制
 * @param i
 * @return
 */
public static String demical2Hex(int i) {
    String s = Integer.toHexString(i);
    return s;
}

3). 2进制与16进制的互相转换

16进制转2进制

/**
 * 16进制转2进制
 *
 * @param hex
 * @return
 */
public static String hexStringToByte(String hex) {
    int i = Integer.parseInt(hex, 16);
    String str2 = Integer.toBinaryString(i);
    return str2;
}

4). 2进制与10进制的互相转换

2进制转10进制

/**
 * 2进制转10进制
 *
 * @param bytes
 * @return
 */
public static int ByteToDecimal(String bytes) {
    return Integer.valueOf(bytes, 2);
}

10进制转2进制

/**
 * 10进制转2进制
 * @param n
 * @return
 */
public static String Demical2Byte(int n) {
    String result = Integer.toBinaryString(n);
    return result;
}

5).16进制转Ascii

/**
 * 16进制转ascii
 *
 * @return
 */
public static String getASCIIFromHexStr(String str) {
    if (TextUtils.isEmpty(str)) {
        return "";
    }
      StringBuilder sb = new StringBuilder();
      int result = Integer.parseInt(split[i], 16);
      char c = (char) result;
      sb.append(c);
      return sb.toString();
}

以上是常用的转换,如果有没有的,可以两部转换

希望这篇文章可以帮助到需要的人,如果还有其他问题或者补充可以评论~~~
如果有帮助记得点赞哦!

你可能感兴趣的:(Android开发-工具)