你有浮动数据类型的bitset容器吗?例:
bitset<sizeof(float)*sizeof(char)> second(5.5f);
cout << second.to_string() << endl;
它无法正常工作.我想要做的是获得位代表.
解决方法:
bitset只使用unsigned long作为其构造函数参数.在您的示例中,float被转换为unsigned long,然后用作参数.
要获得您想要的东西,请使用以下内容:
float f = 5.5f;
std::bitset<sizeof(float)*CHAR_BIT> foo(*reinterpret_cast<unsigned long*>(&f));
这将浮点数作为包含无符号长整数的内存重新解释为“内存”,从而“欺骗”构造函数.