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;
  }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐