c++ - 将 float 转换为 32 位十六进制 C++

标签 c++ visual-c++

谁能告诉我是否有将 float 转换为十六进制格式的代码?

例如:float num = 70.482 和十六进制函数应返回 428CF6C9。

如果之前有任何代码已经完成,请链接我。

干杯。

最佳答案

你可以自己简单地写一下:

float x;
const unsigned char * pf = reinterpret_cast<const unsigned char*>(&x);

for (size_t i = 0; i != sizeof(float); ++i)
{
  // ith byte is pf[i]
  // e.g. printf("0x02X ", pf[i]);
}

事实上,您可以这样做以获得任何(标准布局*)变量的二进制表示。

*) 谢谢,@R。马蒂尼奥·费尔南德斯!

如果您决定在 long double(或者更确切地说,80 位扩展精度 float )上尝试此操作,请注意它只有 10 个字节,但在 x86 上被填充为 12 或 16/x64,分别。

关于c++ - 将 float 转换为 32 位十六进制 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7245817/

相关文章:

使用 C# 进行 C++ 单元测试

c++ - 访问说明符不会更改可访问级别。这是什么意思?

c++ - Microsoft Visual Studio 2013 链接错误 1104

c++ - 如何解决 "error LNK2019: unresolved external symbol"?

visual-c++ - 阻止 .lib 中的 dllexport 函数从 DLL 导出

c++ - 使用 resource.rc 中指定的不同语言构建应用程序

c++ - 公共(public)头文件中的外部类以及该类的头文件中的外部类

c++ - 异步 60 秒延迟后在 C++ 中执行函数?

c++ - 如何在编译时从作用域运算符中提取类型?

c++ - 从 BYTE 数组中读取 32 位整数。 VC++