10进制转16进制c语言_16进制[0000~ffff]转10进制[0~65535](范围可调)

0671f1d5b6726804df5027cd8bd391ce.png

一些物联网传感器数据用的十六进制传递的,例[0000~ffff],正常转换为有符号的值范围是[-32768~32767],但常见的传感器中只有温度带负值,室外温度传感器一般最低值为-50度,负值范围用不了那么多,而一些传感器数据正值范围很大,例光照强度传感器最大值可达60000,这种情况下比较取巧的处理方式是改变数据转换后的值范围,例把范围改为[-5535~60000],比较正规的做法是增加符号位,例温度为有符号,光照强度为无符号。

 /**
   * 4位16进制字符串[0000~ffff]转10进制[0~65535]
   * @param hex [0000~ffff]
   * @return
   */
  public static Integer hexToInt(String hex) {
      return Integer.parseInt(hex, 16);
  }
  
  /**
   * 4位16进制字符串[0000~ffff]转10进制[-n~65535-n]
   * @param hex [0000~ffff]
   * @param min 最小值(范围:[-1~-65536])
   * @return
   */
  public static Integer hexToInt(String hex, int min) {
    int value = Integer.parseInt(hex, 16);
    return value - 65536 >= min ?  value - 65536 : value;
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值