1234567F 设备累计行驶里程,固定8字节,16进制,单位为米,行驶里程为0X1234567F米=305419903米,即30.5419万公里
终端传上来的数据,是用ASCII表示的字符串,但里面装的是16进制数。我现在给后台传,要10进制的数。怎么搞?
找了一大堆帖子,说的都不尽如人意。都是怎么一个字符一个字符的转,我想要整体转。
// 设备累计行驶里程,固定8字节,16进制,单位为米,
// 行驶里程为0X1234567F米=305419903米,即30.5419万公里
String tmp = "0X1234567F";
Long b = Long.parseLong(tmp.replaceAll("^0[x|X]", ""), 16);
// 设备累计行驶里程,固定8字节,16进制,单位为米,
// 行驶里程为0X1234567F米=305419903米,即30.5419万公里
String tmp = "1234567F";
Long b = Long.parseLong(tmp, 16);
首先,取到你要的字符串保证正确。我实际代码中没有0x,这里给大家贴出来方便大家遇到的时候直接使用。
之后,根据长度使用int,long等类型的praseXXX(XXX是类型)的函数,填上你想要转的进制。就得到了,再用toString。