2015-08-20 323 views
1

我想下面提到的十六进制值转换为电压的转换,十六进制转换为十进制电压转换

2字节签名2S比较二进制小数与二进制点最显著位的右边。 1:512V缩放。 例子:

 0x2A80 → 170.00 V 
     0xD580 → ‐170.00 V 

但0x2A80转换给了我10880十进制值。我怎样才能从0x2A80获得170.00 V?

回答

1

如果0x2A80是170.00,那么这意味着你有10位之前的点和6点之后的点。或者换句话说,你有64分之10880== 170


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

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

  2. 在大多数编程语言中,您没有“十进制”或“十六进制”值,只有值。当您处理文本输出和字符串时,只能使用十进制和十六进制。 0x2A80 10880和0xD580-10880。


如果你碰巧在C是编程:

short fixedPointNumber; 
float floatingPointNumber; 

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