メモリ上の32ビットデータが、上位と下位それぞれ16ビット毎の値としてテキストファイルに文字列で保存されているファイルがあるのですが、これを元の32ビットの値に戻すため、INPUT文で上位と下位のそれぞれの値を文字列で読み込み、整数に変換しました。 しかし、この後どうすればよいかわかりません。 低レベルの質問かもしれませんが、よろしくお願いします。
普通に256(&h100)倍して足せばいいのでは?
(Cn ... C1)(16進数表現)=(Cn*16^(n-1)+...+C1*16^0)(10進数表現)
環境が書かれていないので以下VB6での話
01 23 45 67
欲しい結果が16進で
1234567
とすると
Dim lngA As Long
A = Val("&H" & HiWord & LoWord & "&")
でどうでしょう。
上位ワードと下位ワードをInteger型の変数に読み込んだあとLong型の変数に合成するときは
最上位ビットの扱いに気をつけないとオーバーフローのエラーがでますよ。
ありがとうございました。
解決いたしました。
ツイート | ![]() |