整数を表すのに4バイト必要です。 をQByteArray
に格納するには、4バイトしかかからないようにするにはどうすればよいですか?QByteArrayに4バイトのみを使用して整数を格納する
QByteArray::number(..)
は整数を文字列に変換し、4バイト以上を占めます。QByteArray((const char*)&myInteger,sizeof(int))
も動作していないようです。
整数を表すのに4バイト必要です。 をQByteArray
に格納するには、4バイトしかかからないようにするにはどうすればよいですか?QByteArrayに4バイトのみを使用して整数を格納する
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'の型である場合)? –
実際には、2番目の解決策が働いています。それを適切にキャストするだけです。タイマーが他の人を助けることができるようになると答えが返ってくるでしょう(私はどこでもこの質問をたくさん見ていますが、SOの方法では解決できません:)) –
これはかなり古かったですが、それを適切にキャストする?私は最後の2時間に正しくキャストしようとしています。:D –