3

私はQbyteArray 名前を持っています"B2"

そして、これに のような 2 バイトの数値を追加したいと思い300ます。

しかし、私がそれをするmybyte.size()3byte!!!!

私のコードは:

2byteにしたいです。

    QByteArray B2;
        short int myint;
        myint=300;
        B2.setNum(myint);
qDebug()<<B2[0]<<B2.size();

これは私の出力です:

3 3 
4

2 に答える 2

3

ドキュメントで説明されているように:

QByteArray :: setNum()は、バイト配列をベースベースのnの出力値(デフォルトでは10)に設定し、バイト配列への参照を返します。ベースは2から36までの任意の値にすることができます。

3バイトの配列を設定しているので、サイズが3になることは明らかです。

アップデート

for (int i = 0; i < 2; i++) {
  B2.append(myint >> (i * 8));
}
于 2012-12-13T08:56:30.083 に答える
0

短い値 (2 バイト) を追加しようとしている場合は、それを行うことができます

B2.append((char)((myint & 0xFF00) >> 8));
B2.append((char)(myint & 0x00FF));

ショート値をビッグエンディアン順に追加します

于 2012-12-13T09:42:05.367 に答える