What is the best way to cast Quint16 to QBitarray(16) ?
Solved
General and Desktop
-
Hi!
I don't think there's a 'nice' way. So maybe something like this:QBitArray quint16ToQBitArray(quint16 v) { QBitArray ba(16); for (int i=0; i<16; i++) ba.setBit(i, v>>i & 1); return ba; } quint16 qBitArrayToQuint16(const QBitArray &ba) { quint16 v = 0; for (int i=0; i<16; i++) v |= ba.at(i)<<i; return v; }
-
Hello,
If you feel lazy and don't want to runfor
loops, as I usually do, you could also try:quint16 value; //< Your value QByteArray data = QByteArray::fromRawData(reinterpret_cast<char *>(&value), sizeof(quint16)); QDataStream stream(&data, QIODevice::ReadOnly); QBitArray bitArray(sizeof(quint16)); stream >> bitArray;
Although it doesn't seem to be shorter than @Wieland's suggestion.
Kind regards.
-
Hi,
@kshegunov I tried the same thing also your code but I could not manage it to work.. I have already have a Qdatastream, I get quint16 values from it... I tried your solution at first sight...
@Wieland The code you send works fine thank you very much..
Have Nice day guys.. Thanks for your help.. It's very valuable..