c - 以 HEX 格式获取浮点数
问题描述
我有字符串char str [8]
。它以 HEX 格式表示一个数字。它是浮动的,带有标志。如何将其写入浮点类型的变量?
例如:
char str[9] = "41700000\0";
我需要从中获取 val:15.0
解决方案
这是将 15 从十六进制 4 字节表示还原回来的一种快速而肮脏的方法。但是,它有太多的错误,甚至不能开始谈论它,而正确的做法是问自己“为什么我需要从这个开始,以及我怎样才能做得更好”。
float hexStrToFloat(const char* str)
{
union { unsigned int i; float f; } tmp;
sscanf_s(str, "%x", &tmp.i);
return(tmp.f);
}
脚注:假设机器为 little-endian,32 位或更高版本。
推荐阅读
- python - Python round 函数不能正常工作
- python - 如何在 Python 中为销售优化创建搜索算法?
- powerbi - 如何在 Power BI 中使用卡片过滤表
- c# - 如何订阅活动?
- dsa - 设计一个 TM 来决定 L = a^nb^nc^md^m,对于每个 m,n ≥ 0。请设计一个识别语言的图灵机
- python - 为什么我在 python 中的 For 循环打印了三遍?
- javascript - 如何在 .ts 文件中不将文件类型指定为 .js?
- java - 具有两个输出的 jacoco:文件和 tcpserver
- python - 尝试使用简单的 bs4 从 subreddit 的帖子中提取天赋。我的代码有什么问题?
- flutter - 无法在颤动中滚动到特定的小部件