投稿日 | : 2003/03/18(Tue) 14:57 |
投稿者 | : nobu |
Eメール | : |
URL | : |
タイトル | : Re^3: 16進数を10進数へ変換する方法 |
> できました。ただ、"e6cef25a"が、変換すると、"3872322138"となる
> はずが、"-422645158"と変換されてしまいます。"0d69"は、正常に
> "590808563"となります。頭文字が記号だとダメなのでしょうか?調べ
> てはいるのですが分かりません。
そんなに桁数の多い16進数変換の話は出て来て居ませんでした。
単純に「16進数を10進数へ変換する方法」と。
桁数が多い時には下記のようにして下さい。
実際の処理時にはもっと工夫が必要でしょうが差し当たり
期待値の、「3872322138」は表示されます。
MID関数で分けて配列に入れる。For文で処理する等すれば見やすくなるでしょう。
個々の処理に付いては自分で考えて下さい。
Dim cw As String
Dim cw1 As String
Dim cw2 As String
Dim cw3 As String
Dim cw4 As String
Dim cw_val As Double
Dim cw1_val As Double
Dim cw2_val As Double
Dim cw3_val As Double
Dim cw4_val As Double
Dim acw1_val As Double
Dim acw2_val As Double
Dim acw3_val As Double
Dim acw4_val As Double
cw = "E6CEF25A"
cw1 = "E6"
cw2 = "CE"
cw3 = "F2"
cw4 = "5A"
cw1_val = Val("&H" + cw1)
cw2_val = Val("&H" + cw2)
cw3_val = Val("&H" + cw3)
cw4_val = Val("&H" + cw4)
acw1_val = cw1_val * 256 ^ 3
acw2_val = cw2_val * 256 ^ 2
acw3_val = cw3_val * 256
acw4_val = cw4_val
cw_val = acw1_val + acw2_val + acw3_val + acw4_val
Label1.Caption = cw_val