Java中把一个数组中的全部数字改为ASCII要怎么写
来源:百度知道 编辑:UC知道 时间:2024/05/28 09:03:02
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);
pos = pos + 3;
//跳过毫秒和正确验证
String tmp = "";
//纬度4字节
// if(message[pos]==0x80) 南纬
tmp = toHexStr(message, pos, 4);
double lat = (double) Long.parseLong(tmp, 16) / 1000
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);
pos = pos + 3;
//跳过毫秒和正确验证
String tmp = "";
//纬度4字节
// if(message[pos]==0x80) 南纬
tmp = toHexStr(message, pos, 4);
double lat = (double) Long.parseLong(tmp, 16) / 1000
你接收到的数据应该是BCD格式的日期时间吧,你现在的转换方式是对的阿,toHexString,
你想要的是什么结果阿?
原始数据可能是:
0x23 0x10 0x05
就是23点10分05秒,
你的结果hour = 23, mini= 10, second = 5没问题啊?
//日一个字节
int day = Integer.parseInt(Integer.toHexString(message[pos++]));
//月1个字节
int month = Integer.parseInt(Integer.toHexString(message[pos++]));
//年1个字节
int year = Integer.parseInt(Integer.toHexString(message[pos++]));
这一段处理都没问题啊。
你想要的输出在哪里啊?
你的函数toHexString在前面没有调用阿,只有一个toHexStr的调用。