2012-12-02 91 views
7

需要4個字節來表示一個整數。如何將int存儲在QByteArray中,以便它只佔用4個字節?僅使用4個字節將整數存儲到QByteArray中

  • QByteArray::number(..)將整數轉換爲字符串,因此佔用超過4個字節。
  • QByteArray((const char*)&myInteger,sizeof(int))也似乎不起作用。
+0

其實,第二個解決方案的工作原理:)你只需要把它正確地轉換回來。當計時器允許它幫助其他人時(我在任何地方都看到很多這個問題,沒有任何地方以SO方式妥善解決),我會發佈一個答案) –

+0

我知道這有點古怪,但你是什麼意思的'正確地施放它?我一直試圖在最後2個小時內正確地轉換它..:D –

回答

15

有幾種方法整數放到一個QByteArray,但下面的通常是乾淨的:

QByteArray byteArray; 
QDataStream stream(&byteArray, QIODevice::WriteOnly); 

stream << myInteger; 

這有讓你寫一些整數(或其他數據類型)的優勢到字節數組相當方便。它還允許您使用QDataStream::setByteOrder來設置數據的字節順序。

+0

在文檔中無法保證這將在字節數組中產生一個4字節的存儲。 –

+3

@StephenChu在什麼情況下它不會生成一個4字節的數組(特別是如果'myInteger'類型爲'qint32'或'quint32')? –

相關問題