Is there a quick way to convert a float value to a byte wise (hex) representation in a QByteArray
?
Have done similar with memcpy()
before u
From the QByteArray Class Reference page:
float f = 0.0f;
QByteArray array(reinterpret_cast<const char*>(&f), sizeof(f));
Will initialize a QByteArray
with the memory content of the float stored in it.
If you already have one and just want to append the data to it:
array.append(reinterpret_cast<const char*>(&f), sizeof(f));
Should do it as well.
To go the other way around, you just have to perform the reverse operation:
float f2;
if (array.size() >= sizeof(f2)
{
f2 = *reinterpret_cast<const float*>(array.data());
} else
{
// The array is not big enough.
}
I'm not sure what you want exactly.
To stuff the binary representation into a QByteArray you can use this:
float f = 0.0f;
QByteArray ba(reinterpret_cast<const char *>(&f), sizeof (f));
To get a hex representation of the float you can add this:
QByteArray baHex = ba.toHex();