java开发-串口通信时遇到有符号十六进制转十进制,以及有符号十进制转十六进制

有符号十六进制转为十进制:

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  为我自己写的算法工具 用来帮助自己快速开发的*/
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ABClooklook

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值