Rob*_* K. 1 embedded point fixed notation
我目前正在将发动机安装到另一辆车上,我希望保持车载电脑内的燃油经济性计算正常工作。我成功地重新编码了这部分,但我一直试图找出他们使用的(简单?)两字节数据格式,但没有成功。我认为它是定点表示法,但无论我如何移动它,它都不会对齐。这两个字节如何表示正确的数字?
Some examples:
Bytes (Dec) --> Result
174,10 -> 2,67
92,11 -> 2,84
128,22 -> 3,75
25,29 -> 4,85
225,23 -> 3,98
00,40 -> 5,00
128,34 -> 5,75
Run Code Online (Sandbox Code Playgroud)
这是部分解决方案:
首先,交换字节。然后加入他们:
结果(十六进制)是:
0AAE
0B5C
1680
1D19
17E1
2800
2280
Run Code Online (Sandbox Code Playgroud)
然后将其拆分为第一个数字(4 位),剩余的三个数字(12 位)并保留整个数字(16 位)。结果(十进制)是:
0 2734 2734
0 2908 2908
1 1664 5760
1 3353 7449
1 2017 6113
2 2048 10240
2 640 8832
Run Code Online (Sandbox Code Playgroud)
第一个数字似乎是一个乘法因子。0 代表 1024,1 代表 1536,2 代表 2048。公式可能为f = (1024 + n * 512)。
现在将整个数字除以乘法因子。结果四舍五入到小数点后两位,为:
2734 / 1024 = 2.67
2908 / 1024 = 2.84
5760 / 1536 = 3.75
7449 / 1536 = 4.85
6113 / 1536 = 3.98
10240 / 2048 = 5.00
8832 / 2048 = 4.31
Run Code Online (Sandbox Code Playgroud)
它适用于除最后一个数字之外的所有数字,最后一个数字可能包含错误。
所以它似乎是某种浮点数,但我不知道具体的格式。可能有一个更简单的公式可以解释这个数字。
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |