我想從二進制閱讀器中獲得雙精度浮點格式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