summaryrefslogtreecommitdiff
path: root/ZAPDUtils/Utils/BinaryWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ZAPDUtils/Utils/BinaryWriter.cpp')
-rw-r--r--ZAPDUtils/Utils/BinaryWriter.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/ZAPDUtils/Utils/BinaryWriter.cpp b/ZAPDUtils/Utils/BinaryWriter.cpp
index aa7840f..34bcad0 100644
--- a/ZAPDUtils/Utils/BinaryWriter.cpp
+++ b/ZAPDUtils/Utils/BinaryWriter.cpp
@@ -107,7 +107,13 @@ void BinaryWriter::Write(uint64_t value)
void BinaryWriter::Write(float value)
{
if (endianness != Endianness::Native)
- value = BitConverter::ToFloatBE((uint8_t*)&value, 0);
+ {
+ float tmp;
+ char* dst = (char*)&tmp;
+ char* src = (char*)&value;
+ dst[3] = src[0]; dst[2] = src[1]; dst[1] = src[2]; dst[0] = src[3];
+ value = tmp;
+ }
stream->Write((char*)&value, sizeof(float));
}
@@ -115,7 +121,14 @@ void BinaryWriter::Write(float value)
void BinaryWriter::Write(double value)
{
if (endianness != Endianness::Native)
- value = BitConverter::ToDoubleBE((uint8_t*)&value, 0);
+ {
+ double tmp;
+ char* dst = (char*)&tmp;
+ char* src = (char*)&value;
+ 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];
+ value = tmp;
+ }
stream->Write((char*)&value, sizeof(double));
}