アプリ版:「スタンプのみでお礼する」機能のリリースについて

お初にお目にかかります(^^)
簡潔に質問します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

A 回答 (5件)

16進数→10進数は



Dim StrHex As String
Dim intVal As Integer
StrHex = "1A"
intVal = Val("&H" & StrHex)

で出来ます。


申し訳ありませんが2進数への変換はよく分かりません。
    • good
    • 1
この回答へのお礼

フムフム・・・実際にやって見よっと。

…実行中。(2分後)

おぉ!なんと!!
できました。本当にありがとうございます。m(_ _)m

お礼日時:2004/10/11 19:10

VBS用ですが16進数⇔2進数、10進数⇔2進数があります。


http://oshiete1.goo.ne.jp/kotaeru.php3?q=739620

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=739620
    • good
    • 0
この回答へのお礼

VBSで同じ質問があったとは(^^
ありがとうございますm(_ _)m

VBSの事は、あまり知らないので今度挑戦してみようと
思います。本当にありがとうございます!

お礼日時:2004/10/11 18:42

16から10は


16進値の頭に[&H]をつけるだけで、10進値が取得できます。
変換ロジックを組むまでも無し。

2進は組む必要あり。
面倒そうなので辞退。
    • good
    • 0
この回答へのお礼

教えていただいて、ありがとうございます。
お返事、遅れてすみません(汗

No.4と重ねて解決できましたm(_ _)m

お礼日時:2004/10/12 13:05

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の方が良いかと思って。

この回答への補足

長文でお答えしていただいた恩も重ねて
感謝です。ありがとうございますm(_ _)m

補足日時:2004/10/12 13:10
    • good
    • 0
この回答へのお礼

お返事、本当にありがとうです(>_<)
実際に、やってみようと思います。

ありがとうございます。

P.S お返事遅れてすみません(汗

お礼日時:2004/10/12 13:07

やり方は色々あると思いますが、とりあえず作ってみました。


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))
でいいですね。
    • good
    • 0
この回答へのお礼

お返事、感激です(⌒_⌒)
本当にNO.2の方と一緒になってしまいますが、
長文でのお答え、本当にありがとうございます。

重ねて、お返事が遅れてしまったこと
申し訳ありません。

ありがとうございます。

お礼日時:2004/10/12 13:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています