16ビット毎の値に分割された32ビット値を元に戻すには?

解決


初心者  2005-10-07 01:16:34  No: 126105

メモリ上の32ビットデータが、上位と下位それぞれ16ビット毎の値としてテキストファイルに文字列で保存されているファイルがあるのですが、これを元の32ビットの値に戻すため、INPUT文で上位と下位のそれぞれの値を文字列で読み込み、整数に変換しました。  しかし、この後どうすればよいかわかりません。  低レベルの質問かもしれませんが、よろしくお願いします。


ガッ  2005-10-07 01:26:34  No: 126106

普通に256(&h100)倍して足せばいいのでは?
(Cn ... C1)(16進数表現)=(Cn*16^(n-1)+...+C1*16^0)(10進数表現)


030  2005-10-07 01:42:35  No: 126107

環境が書かれていないので以下VB6での話

01 23 45 67

欲しい結果が16進で
1234567
とすると

Dim lngA  As Long
A = Val("&H" & HiWord & LoWord & "&")

でどうでしょう。

上位ワードと下位ワードをInteger型の変数に読み込んだあとLong型の変数に合成するときは
最上位ビットの扱いに気をつけないとオーバーフローのエラーがでますよ。


初心者  2005-10-07 02:24:57  No: 126108

ありがとうございました。
解決いたしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加