我正在尝试在C ++中重新实现C#BinaryReader类的某些方法,现在我被ReadSingle() method所困扰。我有以下代码:
float BinaryReaderClass::ReadSingle() {
float a;
_inputStream->read(reinterpret_cast<char*>(&a), sizeof(a));
return a;
}
我使用示例文件测试了我的代码,并且它在大多数时间都有效,除了以下事实:有时]我得到负零,例如-0.000000,而C#中的同一函数返回0.000000。
我真的不明白为什么。
我正在尝试在C ++中重新实现C#BinaryReader类的一些方法,现在我被ReadSingle()方法所困扰。我有以下代码:float BinaryReaderClass :: ReadSingle(...
[BinaryReader
并没有做任何不同的事情,它只是将内存中的数据解释为float
,就像reinterpret_cast
一样。