1
我想下面提到的十六进制值转换为电压的转换,十六进制转换为十进制电压转换
2字节签名2S比较二进制小数与二进制点最显著位的右边。 1:512V缩放。 例子:
0x2A80 → 170.00 V
0xD580 → ‐170.00 V
但0x2A80转换给了我10880十进制值。我怎样才能从0x2A80获得170.00 V?
我想下面提到的十六进制值转换为电压的转换,十六进制转换为十进制电压转换
2字节签名2S比较二进制小数与二进制点最显著位的右边。 1:512V缩放。 例子:
0x2A80 → 170.00 V
0xD580 → ‐170.00 V
但0x2A80转换给了我10880十进制值。我怎样才能从0x2A80获得170.00 V?
如果0x2A80是170.00,那么这意味着你有10位之前的点和6点之后的点。或者换句话说,你有64分之10880== 170
你的问题似乎包含着一些误解:
事实上,170.0是电压无关。无论电压,距离还是没有单位的数字,数字都是一样的。
在大多数编程语言中,您没有“十进制”或“十六进制”值,只有值。当您处理文本输出和字符串时,只能使用十进制和十六进制。 0x2A80
是 10880和0xD580
是-10880。
如果你碰巧在C是编程:
short fixedPointNumber;
float floatingPointNumber;
scanf("%hx", &fixedPointNumber);
floatingPointNumber = fixedPointNumber/64.0f;
printf("Converted number: %f\n", floatingPointNumber);