8 Dec
2015
8 Dec
'15
6:40 p.m.
From: Martin Vymazal
Hello, I am trying to convert a floating point value from big endian to little
endian, but the code below does not compile:
double x = 10.0;
const double x_big_endian = boost::endian::native_to_big(x); boost::endian::native_to_big_inplace(x);
Be very careful how you swap floats. They aren't like integer data types where the swapped representation can fit nicely into the same type. Not all swapped floats are valid floats, and you'll find that the bits will be messaged into a valid float, thus changing your value without telling you. You can only swap a float into an integer. You can't swap a float into a float.