Java与硬件通讯数据类型转换

本文详细介绍了计价器中16进制SCII到10进制字符串的转换方法,包括ASCII到字符串、十六进制字符串到Byte数组及反向转换的实现。提供了具体代码示例,适用于数据解析和格式转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**

  • 01.计价器 16进制SCII转10进制字符串
  • 例如:ASCII :BEA94A4C313233343536 转成字符串 京JL123456
  • @param value 要转化的ASCII
  • @return 10进制字符串
    */

public static String asciiToString(String value) {
try {
return new String(hex2byte(change(value)), “UTF-8”);
} catch (UnsupportedEncodingException e) {
return value;
}
}

public static byte[] hex2byte(String value) {
String[] str = value.split(" ");
byte[] b = new byte[str.length];
for (int i = 0; i < str.length; i++) {
b[i] = (byte) hexStringToInt(str[i]);
}
return b;
}

/**

  • 数据解析 把16进制转换出来 038e转换成 1000
  • @param value
  • @return
    */
    public static int hexStringToInt(String value) {
    return Integer.valueOf(value, 16);
    }

/**

  • 02.计价器 十六进制字符串转Byte数组
  • @param value 十六进制字符串
  • @return Byte数组
    */
    public static byte[] hexStringToByteArray(String s) {
    int len = s.length();
    byte[] data = new byte[len / 2];
    try {
    for (int i = 0; i < len; i += 2) {
    data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
    + Character.digit(s.charAt(i+1), 16));
    }
    } catch (Exception e) {
    //Log.d("", “Argument(s) for hexStringToByteArray(String s)”+ “was not a hex string”);
    }
    return data;
    }

/**

  • 03.计价器 Byte数组转十六进制字符串
  • @param value Byte数组
  • @return 十六进制字符串
    */

public static String byte2HexString(byte[] bytes) {
String hex= “”;
if (bytes != null) {
for (Byte b : bytes) {
hex += String.format("%02X", b.intValue() & 0xFF);
}
}
return hex;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值