假如我想通过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)); }
标签:10,进制,16,报文,补码,负数,BigDecimal From: https://www.cnblogs.com/hunttown/p/16786745.html