JAVA 16进制转换为ASCII的问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:05:27
private AsyncPacketP parseAPPacket(long utc, String sim, int apc,
byte[] message,
int length, boolean setAlarm, String desc) throws
piTransException {

int pos = 0;

//时一个字节
int hour = Integer.parseInt(Integer.toHexString(message[pos++]));
//分一个字节
int minit = Integer.parseInt(Integer.toHexString(message[pos++]));
//秒一个字节
int second = Integer.parseInt(Integer.toHexString(message[pos++]));
Calendar ca = Calendar.getInstance();
ca.set(hour, minit, second);
ca.add(Calendar.HOUR,8);
int nUtc = (int) ( (ca.getTime()).getTime() / 1000);}

public String toHexString(byte[] content, int len) {
String hexString = "";
for (int i = 0; i < len; i++) {
String temp = "";
temp = Integer.toHexString(content[i] & 0x000000ff);

现在你得到的31 31 34 35 32 34 就是ASCII,转换成字符串就是114524。
你想要的是BCD码?看你的程序,原来的message里的数据就是BCD码阿。
不懂你要搞什么。

new String(message)返回的就是“114524”了