掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バイナリ配列 → 整数変換 (ID:142376)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>>> aa(0) = &HFF これは、 aa(0) = 255 と同義である事に注意してください。 10進数で表記しようと、16進数で表記しようと、 それが指し示す値は同じ数値を意味します。 そして、それに続く n = Val("&H" & aa(0) & aa(1)) という処理は、結局のところ n = Val("&H" & CStr(255) & CStr(255)) として扱われることになります。ゆえに、この Val 関数は n = &H255255 として処理され、「n = 2445909」という値になります。 >> 「Dim n As Long」でどうですか? Debug.Print CInt("&HFFFF") '-1 Debug.Print CLng("&HFFFF") '65535 になりますね。 > n = 65535 となるようにしたいのですが、 例えば、 Dim aa(1) As Byte aa(0) = &HFF aa(1) = &HFF n = aa(0) * &H100& + aa(1) のようにすれば OK です。もし、"FF" という16進数表記からの変換を求めるなら Dim aa(1) As String aa(0) = "FF" aa(1) = "FF" n = CLng("&H" & aa(0) & aa(1)) とか、 Dim aa(1) As Byte aa(0) = &HFF aa(1) = &HFF n = CLng("&H" & Hex(aa(0)) & Hex(aa(1))) のように記述すれば OK かと。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.