十六进制到十进制电压转换

时间:2015-08-20 12:23:23

标签: hex

我想将十六进制值转换为电压转换,如下所述,

2字节签名2s Comp二进制分数,二进制点位于最高位的右侧。 1:512V缩放。 示例:

      0x2A80 → 170.00 V 
      0xD580 → ‐170.00 V

但是0x2A80转换给了我10880十进制值。如何从0x2A80获得170.00 V?

1 个答案:

答案 0 :(得分:1)

如果0x2A80是170.00,则表示在该点之前有10位,在该点之后有6位。或者换句话说,你有10880/64 == 170。

您的问题似乎包含一些误解:

  1. 170.0是电压的事实无关紧要。无论数字是电压,距离还是没有单位的数字,数字的作用都是一样的。

  2. 在大多数编程语言中,你没有"十进制"或"十六进制"价值观,你只有价值观。只有在处理文本输出和字符串时才会出现十进制和十六进制。 0x2A80 10880,0xD580 -10880。

  3. 如果你碰巧在C编程:

    short fixedPointNumber;
    float floatingPointNumber;
    
    scanf("%hx", &fixedPointNumber);
    floatingPointNumber = fixedPointNumber / 64.0f;
    printf("Converted number: %f\n", floatingPointNumber);