2012-12-02 11 views
7

整数を表すのに4バイト必要です。 をQByteArrayに格納するには、4バイトしかかからないようにするにはどうすればよいですか?QByteArrayに4バイトのみを使用して整数を格納する

  • QByteArray::number(..)は整数を文字列に変換し、4バイト以上を占めます。
  • QByteArray((const char*)&myInteger,sizeof(int))も動作していないようです。
+0

実際には、2番目の解決策が働いています。それを適切にキャストするだけです。タイマーが他の人を助けることができるようになると答えが返ってくるでしょう(私はどこでもこの質問をたくさん見ていますが、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'の型である場合)? –

関連する問題