代码改变世界

负数补码(16进制转10进制的负数)

  猎手家园  阅读(276)  评论(0编辑  收藏  举报

假如我想通过modbus tcp接收设备上传的报文,该设备显示为负数,但报文上无法解析出来(温度报文异常,负数无法显示与转换)。这时候,我就需要对这个报文进行负数补码形式,16进制转10进制的负数。

public static void main(String[] args) {
    //补码
    BigDecimal s = new BigDecimal(Integer.valueOf("fff6",16).shortValue());
    BigDecimal ss = new BigDecimal("0.1");
    System.out.println(s.multiply(ss));
}

 

相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示