java 数字 ascii_Java中把一个数组中的全部数字改为ASCII要怎么写

privateAsyncPacketPparseAPPacket(longutc,Stringsim,intapc,byte[]message,intlength,booleansetAlarm,Stringdesc)throwspiTransException{intpos=0;//时一个字节inthour=Integer.p...

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 / 60;

pos = pos + 5;

//跳过南北纬

//经度4字节

// if(message[pos]==0x80) 西经

tmp = toHexStr(message, pos, 4);

double lon = (double) Long.parseLong(tmp, 16) / 1000 / 60;

pos = pos + 5;

//跳过东西经

//速度 2个字节,单位:0.1公里/小时

int speed = Integer.parseInt(toHexStr(message, pos, 2), 16) / 10;

pos = pos + 2;

//角度 2个字节 0.1度

int heading = Integer.parseInt(toHexStr(message, pos, 2), 16) / 10;

pos = pos + 2;

//日一个字节

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++]));

ca.set(day, month - 1, 2000 + year);

nUtc = (int) ( (ca.getTime()).getTime() / 1000);

pos = pos + 5;

AsyncPacketP ap = new AsyncPacketP();

ap.commaddr = sim;

ap.utc = nUtc;

ap.valid = "有效";

ap.latitude = (int) (lat * 600000);

//Longitude(单位: 毫秒)

ap.longitude = (int) (lon * 600000);

//1海里=1852米-->km/h

ap.speed = speed;

//方向

ap.heading = heading;

ap.odesc = "正常";

ap.adesc = "正常";

ap.vdesc = "正常";

ap.ddesc = "正常";

ap.ostdesc = "正常";

ap.destid = -1;

ap.tflag = 0;

ap.vflag = 0;

ap.packtype = piConstant.APP_NORMAL;

return ap;

}

这是我现在的 结果得到的数据是30 33 35 32之类的16进制数

我想得到ASCII 就是0 3 5 2这样的 请问要在后面加什么语句?

我要得到的就是0x23 0x10 0x05 可是我现在得到的是32 33 31 30 30 35.。。。

呃 可能和我后面一段代码有关

public String toHexString(byte[] content, int len) {

String hexString = "";

for (int i = 0; i < len; i++) {

String temp = "";

temp = Integer.toHexString(content[i] & 0x000000ff);

if (temp.length() < 2) {

temp = "0" + temp;

}

temp += " ";

hexString += temp;

}

return hexString;

}

我不是很懂这个 可是把这段删了以后 上面的toHexString就没定义 通不过编译了- -还请高手帮帮忙

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值