我想从二进制阅读器中获得双精度浮点格式double值。如何将C#代码转换为C++?
我在C++中使用std :: ifstream。
我在这里有C#代码。
但我不知道什么是BitConverter。
所以,有人给我一只手来转换为C++或C代码。
byte[] bytes = ReadBytes(8); -> ReadBytes is from BinaryReader class.
byte[] reverse = new byte[8];
//Grab the bytes in reverse order
for(int i = 7, j = 0 ; i >= 0 ; i--, j++)
{
reverse[j] = bytes[i];
}
double value = BitConverter.ToDouble(reverse, 0);
编辑
据BLUEPIXY,我可以创建为C++代码。
char bytes[8];
file.read(bytes, 8);
char reverse[8];
for (int i = 7, j = 0; i >= 0; i--, j++)
{
reverse[j] = bytes[i];
}
double value = *(double*)reverse;
感谢BLUEPIXY。
'BitConverter.ToDouble'返回从字节数组中指定位置的八个字节转换而来的双精度浮点数。 – inixsoftware
这个消息的题目很差。编辑它来询问你所遇到的特定问题(并且包括C#示例代码):它不是将C#转换为C++,而是将原始字节转换为“double”。 – Yakk