- ベストアンサー
16進数を10進数に変換する方法...
お初にお目にかかります(^^) 簡潔に質問しますm(_ _)m バージョン:MS-Visual Basic6.0 質問内容: 16進数を10進数に変換する方法がわかりません。 Hex(Text1.Text) や Oct(Text1.Text) のような方法で 16進数・8進数に変換できるんですが… 10進数に変換する方法がわかりません。 P.S できれば、16進数→10進数、16進数や10進数→2進数 …に、変換する方法も、よろしければ教えてくださいませ m(_ _)m
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
16進数→10進数は Dim StrHex As String Dim intVal As Integer StrHex = "1A" intVal = Val("&H" & StrHex) で出来ます。 申し訳ありませんが2進数への変換はよく分かりません。
その他の回答 (4)
- hofuhofu
- ベストアンサー率70% (336/476)
VBS用ですが16進数⇔2進数、10進数⇔2進数があります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=739620
お礼
VBSで同じ質問があったとは(^^ ありがとうございますm(_ _)m VBSの事は、あまり知らないので今度挑戦してみようと 思います。本当にありがとうございます!
- 2ch
- ベストアンサー率51% (64/125)
16から10は 16進値の頭に[&H]をつけるだけで、10進値が取得できます。 変換ロジックを組むまでも無し。 2進は組む必要あり。 面倒そうなので辞退。
お礼
教えていただいて、ありがとうございます。 お返事、遅れてすみません(汗 No.4と重ねて解決できましたm(_ _)m
- imogasi
- ベストアンサー率27% (4737/17069)
16進表記の文字列を10進数に変換。#1に良い解が出てしまったので Function HEX2DEC(s As String) As Long s = UCase(s) wk = 0 For i = 1 To Len(s) x = Asc(Mid(s, i, 1)) - 48 If x > 9 Then x = x - 7 ' MsgBox x wk = wk * 16 + x Next HEX2DEC = wk End Function --以下テスト例 Sub test01() Dim s As String s = "ffffff" y = HEX2DEC(s) MsgBox y s = "abcdef" y = HEX2DEC(s) MsgBox y End Sub As Integer はAs Longの方が良いかと思って。
お礼
お返事、本当にありがとうです(>_<) 実際に、やってみようと思います。 ありがとうございます。 P.S お返事遅れてすみません(汗
補足
長文でお答えしていただいた恩も重ねて 感謝です。ありがとうございますm(_ _)m
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
やり方は色々あると思いますが、とりあえず作ってみました。 Function HEX2DEC(s As String) As Integer s = UCase(s) Table = "0123456789ABCDEF" wk = 0 For i = 1 To Len(s) wk = wk * 16 + InStr(Table, Mid(s, i, 1)) - 1 Next HEX2DEC = wk End Function Function HEX2BIN(s As String) As String Dim bin(16) s = UCase(s) Table = "0123456789ABCDEF" bin(0) = "0000" bin(1) = "0001" bin(2) = "0010" bin(3) = "0011" bin(4) = "0100" bin(5) = "0101" bin(6) = "0110" bin(7) = "0111" bin(8) = "1000" bin(9) = "1001" bin(10) = "1010" bin(11) = "1011" bin(12) = "1100" bin(13) = "1101" bin(14) = "1110" bin(15) = "1111" HEX2BIN = "" For i = 1 To Len(s) HEX2BIN = HEX2BIN + bin(InStr(Table, Mid(s, i, 1)) - 1) Next End Function 10進から2進は HEX2BIN(HEX(n)) でいいですね。
お礼
お返事、感激です(⌒_⌒) 本当にNO.2の方と一緒になってしまいますが、 長文でのお答え、本当にありがとうございます。 重ねて、お返事が遅れてしまったこと 申し訳ありません。 ありがとうございます。
お礼
フムフム・・・実際にやって見よっと。 …実行中。(2分後) おぉ!なんと!! できました。本当にありがとうございます。m(_ _)m