Qt でバイナリ ファイルを読み込もうとしています。
ファイルには、テキスト データとバイナリ (16 進数) データが混在しています。
ファイルには、16 進数で指定された長さのデータ領域が含まれています。
例えば:
00 01 BE 00 00 00 00 00 00 00 00 00 01
ここで、「BE」はファイルのオフセット BB にあります。BE は 190 なので、上の最後のバイトまでスクロールすると、次の 190 バイトが自分のデータであることがわかります。
上記のように、Qtコードでバイト値「BE」を190に変換しようとして、数日間苦労しました。
私が得た最高の値は "-66" で、もちろん 190-256 です。
別の例は次のとおりです。
00 01 D3 63 00 00 00 00 00 00 00 01
10 進数の 25555 である「63D3」に変換する必要があります。
ここに私のコードスニペットがあります:
ファイルを読む:
QFile file(iFile); if (!file.open(QIODevice::ReadOnly)) return; QByteArray iContents = file.readAll();
長さを取得する
ushort c3 = 0xFF; c3 = iContents.at(2); // c3 should be "BE" hex. printf ( "%0x %d\n", c3, c3 );
出力は次のとおりです。
FFFFFFBE -66
これを 190 として読み取るにはどうすればよいですか?
検索後にさまざまなことを試しましたが、コードに基本的なものが欠けていることを示唆するものは何もないようです。
変換を行う現在のコードは次のとおりです:decimal