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

解決


初心者  2005-10-06 16:16:34  No: 126105  IP: [192.*.*.*]

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

編集 削除
ガッ  2005-10-06 16:26:34  No: 126106  IP: [192.*.*.*]

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

編集 削除
030  2005-10-06 16:42:35  No: 126107  IP: [192.*.*.*]

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

01 23 45 67

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

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

でどうでしょう。

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

編集 削除
初心者  2005-10-06 17:24:57  No: 126108  IP: [192.*.*.*]

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

編集 削除