gpt4 book ai didi

c++ - 将包含二进制的字符串转换为 float

转载 作者:搜寻专家 更新时间:2023-10-31 01:00:41 25 4
gpt4 key购买 nike

我有一个字符串,它包含一个二进制值,我想将其转换为 float 。我找不到执行此操作的方法。

比如我有一个

string temp =  "00000000000000000000000101111100";

用二进制表示 0.25。

在 temp 上使用 stofstring::size_type 产生 1.0111110e+008 存储在 float 变量中(根据 visual studio)并将值结果打印为垃圾 - 101111104.

我的问题:有没有办法将二进制字符串直接转换为 float ,还是需要计算 float 然后存储?

最佳答案

这是一种方式

std::string temp = "00000000000000000000000101111100";
assert(temp.length() == 32);
int n = 0;
for(int i = 0; i < temp.length(); ++i)
{
n |= (temp[i] - 48) << i;
}
float f = *(float *)&n;

关于c++ - 将包含二进制的字符串转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com