需要4個字節來表示一個整數。如何將int
存儲在QByteArray
中,以便它只佔用4個字節?僅使用4個字節將整數存儲到QByteArray中
QByteArray::number(..)
將整數轉換爲字符串,因此佔用超過4個字節。QByteArray((const char*)&myInteger,sizeof(int))
也似乎不起作用。
需要4個字節來表示一個整數。如何將int
存儲在QByteArray
中,以便它只佔用4個字節?僅使用4個字節將整數存儲到QByteArray中
QByteArray::number(..)
將整數轉換爲字符串,因此佔用超過4個字節。QByteArray((const char*)&myInteger,sizeof(int))
也似乎不起作用。有幾種方法整數放到一個QByteArray
,但下面的通常是乾淨的:
QByteArray byteArray;
QDataStream stream(&byteArray, QIODevice::WriteOnly);
stream << myInteger;
這有讓你寫一些整數(或其他數據類型)的優勢到字節數組相當方便。它還允許您使用QDataStream::setByteOrder
來設置數據的字節順序。
在文檔中無法保證這將在字節數組中產生一個4字節的存儲。 –
@StephenChu在什麼情況下它不會生成一個4字節的數組(特別是如果'myInteger'類型爲'qint32'或'quint32')? –
其實,第二個解決方案的工作原理:)你只需要把它正確地轉換回來。當計時器允許它幫助其他人時(我在任何地方都看到很多這個問題,沒有任何地方以SO方式妥善解決),我會發佈一個答案) –
我知道這有點古怪,但你是什麼意思的'正確地施放它?我一直試圖在最後2個小時內正確地轉換它..:D –