【发布时间】:2013-12-08 11:41:24
【问题描述】:
我有 8 个字节代表一个数字。我给出的描述是:
"有符号 Little-Endian 编码的八字节整数字段,带有八 隐含小数位"
当从文件转储中“挖掘”数据时,八个字节是(我已经包含了字符表示,只是为了使二进制文件清晰):
- [0] = 0 ('\0')
- [1] = 86 ('v')
- [2] = 41 (')')
- [3] = 50 ('2')
- [4] = 48 ('0')
- [5] = 0 ('\0')
- [6] = 0 ('\0')
- [7] = 0 ('\0')
在查找了字节序维基百科文章后,我认为我需要从 [7] 开始并向后工作到 [0](文件顺序是从 [0] 到 [7])。但我不确定我需要对这些值做什么。
谁能帮我算出这个数字是多少(这样我就可以将这 8 个字节分配给一个双精度字节)?
【问题讨论】:
-
也许如果你有一些示例代码(不工作很好)显示你正在尝试做什么,以及正确答案应该是什么以及你的答案是什么代码正在生成,您的要求会更清楚。
-
@mah 如果我能提供,我就不会问这个问题了。最后一句话说明了我正在尝试做的事情。给定这些字节-我想创建一个双重表示。
-
啊,我就知道肯定跟财政有关。但是小数点后8位?好的,也许是为了在货币之间进行转换......
-
如果你输入
*(long long*)bytes并乘以 1E-8,这是一个不错的整数,2070.0。清楚地询问生成数据的人是明智的做法。 -
@HansPassant 你能告诉我你在那里做了什么吗?!字节是 char[8] 吗?!你有正确的值
标签: c binary double computer-science endianness