我很好奇什么是解决以下问题的最佳方法:
假设我有一个字节流。 收到的第一个字节将指示数据类型。 假设 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
我觉得有限状态机可能是我正在考虑实现的,但我想知道这是否有点矫枉过正/误入歧途。