如果我有一个IEEE浮动十六进制42F6E979,我该如何将它转换为十进制?我相信十进制表示法是= 123.456001将IEEE浮点十六进制转换为十进制?
回答
请参阅Wikipedia或调用可能已存在于您的环境中的库例程。这是一个经常重新发明的轮子
当您测试自己的代码时,可以使用this online tool来检查您的答案。供参考,你是正确的,小数点是123.45 ...
维基百科也有一个useful article以及。
+1为链接到在线工具 - 非常有用。 – 2010-10-08 15:50:27
(大部分)汇编语言并不强制强制执行类型,因此您只需使用该值初始化一个位置,然后将其作为浮点处理/使用。要转换的最简单的方法通常是这样的:
.data
myfloat dd 042F6E979H
mydec db 10 dup(?)
.code
mov ebx, offset mydec
fld myfloat
fbstp [ebx]
这实际上产生二进制编码的十进制,所以你必须每个字节分为两个数字来显示。当然,这是x86的 - 大多数其他架构使这项工作更加困难。例如,在PowerPC上,您有fctiw
,它只是转换为整数(与x86 fist
的常规顺序相同)。要使用它,通常会乘以10的倍数以获得所需的小数位数,然后转换为整数,并将小数点放在结果的正确位置。当/如果1)您接近浮点数范围的极限,或2)您想要的精度超过您在单个整数中可以表示的值时,它会变得有点难看。
我会在C中这样做,因为你没有提供语言。
char hex[];
int *ptr;
for(int i = 0; i < 8; ++i)
{
&ptr += toNumber(hex[i]) << (i * 4);
}
float *value = (float*)ptr;
我会留给OP编写toNumber函数。
'&ptr + ='应该做什么?该地址的运营商不会给你一个左值。你的意思是'*(ptr ++)= something'的意思吗? 'ptr'如何初始化? – 2015-09-29 07:07:02
- 1. 将十六进制转换为IEEE 754
- 2. 将十进制值转换为32位浮点十六进制
- 3. 将十进制转换为十六进制和十六进制
- 4. 在C#中将十六进制转换为IEEE 754浮点数
- 5. 转换IEEE 754浮点数以十六进制字符串
- 6. 将字符串转换为十六进制到十六进制
- 7. Python如何将十六进制浮点数转换为十进制
- 8. 十六进制和十进制转换
- 9. 使用限制将十进制转换为十六进制
- 10. 将十六进制转换为二进制,然后转换为十进制
- 11. 将二进制浮点数转换为十六进制浮点数
- 12. 十六进制浮点数
- 13. 转换为十六进制?
- 14. IEEE十进制到二进制转换
- 15. 如何将十六进制转换为IEEE 754 32位浮点C++
- 16. 十六进制转换为二进制
- 17. 十进制转换为十六进制的转换(Java)的
- 18. 如何十六进制转换为十六进制
- 19. 将4字节十六进制转换为十进制值
- 20. Python将十进制转换为十六进制
- 21. 将十六进制转换为十进制(Lat/Lon)?
- 22. VB.Net - 将多字节十六进制值转换为十进制
- 23. 在Swift中将十六进制转换为十进制
- 24. 在Lua 4中将十进制转换为十六进制?
- 25. 如何将十六进制字符串转换为十进制?
- 26. 将十六进制数转换为十进制格式
- 27. 用Erlang将十进制转换为十六进制?
- 28. 将十六进制转换为十进制在swift中
- 29. 将十六进制从套接字转换为十进制
- 30. Perl 5.6.1与Perl 5.14 - 将十进制转换为十六进制
什么汇编语言和体系结构? – 2010-10-08 15:45:24
需要'家庭作业'标签? – 2010-10-08 15:49:27
你的意思是ascii?如何从二进制浮点转换为人类可读的ascii? – 2010-10-09 05:11:12