有符号十六进制转为十进制:
String code="fffff777";
//直接用BigIntger 进行转换 因为基本数据类型的范围限制
BigInteger body = new BigInteger(code,16);
Log.i(TAG,body.inValue()+"");//最好是用inValue 转换一下输出
有符号十进制转为十六进制:
//这边根据我的工作需求
String gpssy_code = "-2300";
//正则或者直接判断字符串是否包含 “-” 符号
if (et_gpsdelay_code.indexOf("-") != -1 ) {
//先转换为int
int numInt=parseInt(et_gpsdelay_code,10);
//再将10进制转为16进制
String l = Long.toHexString(numInt);
/*判断长度是否大于8 大于的话则进行取最后面8位数 根据串口补码转码规则这边转换后字符串肯定是fffffffffffff...什么的,我这刚好只需要后8位*/
//截取代码 自己填写
} else {
//否则说明是个无符号的十进制数 那就直接转为十六进制
String gpssy = DigitalTrans.algorismToHEXString(parseInt(et_gpsdelay_code));
int gpssy_length = gpssy.length();//我的算法工具需要获取到长度,因为需要在前面补0
gpssy_code = Judge(8, gpssy_length, gpssy);
/* DigitalTrans.algorismToHEXString 与 Judge 为我自己写的算法工具 用来帮助自己快速开发的*/
}