diff options
Diffstat (limited to 'ZAPDUtils/Utils/BinaryReader.cpp')
| -rw-r--r-- | ZAPDUtils/Utils/BinaryReader.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/ZAPDUtils/Utils/BinaryReader.cpp b/ZAPDUtils/Utils/BinaryReader.cpp index 5916ce9..092124a 100644 --- a/ZAPDUtils/Utils/BinaryReader.cpp +++ b/ZAPDUtils/Utils/BinaryReader.cpp @@ -130,7 +130,13 @@ float BinaryReader::ReadSingle() stream->Read((char*)&result, sizeof(float)); if (endianness != Endianness::Native) - result = BitConverter::ToFloatBE((uint8_t*)&result, 0); + { + float tmp; + char* dst = (char*)&tmp; + char* src = (char*)&result; + dst[3] = src[0]; dst[2] = src[1]; dst[1] = src[2]; dst[0] = src[3]; + result = tmp; + } if (std::isnan(result)) throw std::runtime_error("BinaryReader::ReadSingle(): Error reading stream"); @@ -145,7 +151,14 @@ double BinaryReader::ReadDouble() stream->Read((char*)&result, sizeof(double)); if (endianness != Endianness::Native) - result = BitConverter::ToDoubleBE((uint8_t*)&result, 0); + { + double tmp; + char* dst = (char*)&tmp; + char* src = (char*)&result; + dst[7] = src[0]; dst[6] = src[1]; dst[5] = src[2]; dst[4] = src[3]; + dst[3] = src[4]; dst[2] = src[5]; dst[1] = src[6]; dst[0] = src[7]; + result = tmp; + } if (std::isnan(result)) throw std::runtime_error("BinaryReader::ReadDouble(): Error reading stream"); |
