二进制流数据结构

问题描述 投票:0回答:0

我很好奇什么是解决以下问题的最佳方法:

假设我有一个字节流。 收到的第一个字节将指示数据类型。 假设 0000 0001 是这种格式的 DOUBLE。

接下来的一组字节将布局一个符号,一个指数和一个尾数。

第一组位定义: MSB 将是一个标志,表示指数正在停止。 1 表示我们将继续进行尾数部分,0 表示指数将继续。

第 6 位将是符号位,第 5 位到第 0 位是指数,后面可能还有更多。

第二个位序列可以定义剩余的指数值或: 尾数值,如果 MSB 为 1,则尾数停止。

第三位序列可以定义剩余的尾数,但是如果我们完成尾数: 第 7-4 位表示精度,我们就完成了。

基本上可以说我们得到了:

0000 0001 //Double

1110 0000 //Signed -- Exponent 

0011 1000 //Mantissa

0010 0000 //Precision

this would be -2.87 -- cuts off -2.875 for precision indications

我觉得有限状态机可能是我正在考虑实现的,但我想知道这是否有点矫枉过正/误入歧途。

embedded state-machine
© www.soinside.com 2019 - 2024. All rights reserved.