- 締切済み
10進数→2進数への変換
VBの関数で 10進数→2進数への変換 のライブラリはあるのでしょうか? それとも自分で作成するのでしょうか? もし作成する場合、何か参考になるHPを教えて下さい また作成された方が居られましたら、その関数を頂けないでしょうか 初歩的な質問で申し訳ございません、よろしくお願い申し上げます
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- KenDon
- ベストアンサー率0% (0/2)
Function LongToBinString(ByVal n As Long) As String 'Long型の整数を文字列に変換する関数 'Integer型も同様に作れる Dim s As String If (n And &H80000000) <> 0 Then s = "1" End If Dim i As Integer For i = 30 To 0 Step -1 If (n And (2& ^ i)) <> 0 Then s = s & "1" Else If Len(s) <> 0 Then s = s & "0" End If Next i If Len(s) = 0 Then s = "0" LongToBinString = s End Function 呼び出し方は、 二進数 = LongToBinString(Val(十進数))
- ahoojpn
- ベストアンサー率53% (7/13)
Private Sub Command1_Click() Dim x As Long x = Text1.Text Label1.Caption = Hex(x) 'Hex=16進数 End Sub 上のコードは10進数→16進数への変換ですが、4行目のHex関数を、2進数の意味を持つ関数に置き換えれば問題ないです。ですが、2進数の意味を持つ関数は、現在のところ存在しないようなので、自分で作成するしかないようです。 ですから、2進数の意味を持つ関数を作成した上で、Hexを作成した関数に置き換えてください(2進数の意味を持つ関数を作成するスキルが無いので、以下のコードは私が作ったものではなく、taka_tetsuさんのコードを引用させていただきました)。 'taka_tetsuさんのコードを引用 '2進数の意味を持つ関数を作成(関数名を"Bin"とする) Function Bin(ByVal n As Integer) Dim strOct As String Dim intLen As Integer Dim intIndex As Integer Dim strCut As String '8進数に変換 strOct = Oct(n) '先頭から1文字ずつ切り出して2進数にする intLen = Len(strOct) For intIndex = 1 To intLen strCut = Mid(strOct, intIndex, 1) Select Case strCut Case "0" Bin = Bin & "000" Case "1" Bin = Bin & "001" Case "2" Bin = Bin & "010" Case "3" Bin = Bin & "011" Case "4" Bin = Bin & "100" Case "5" Bin = Bin & "101" Case "6" Bin = Bin & "110" Case "7" Bin = Bin & "111" End Select Next End Function
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test01() Dim s As Long Dim d As String s = InputBox("10進=") d = dtob(s) MsgBox "10進 " & s & "==>2進 " & d End Sub Private Function dtob(s) Dim b, c, i As Long Dim bs, ns As String c = s ns = "" For i = 1 To 100 b = c Mod 2 bs = Trim(Str(b)) ns = bs & ns c = Int(c / 2) If c = 0 Then Exit For Next i dtob = ns End Function
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 ここも。 http://www.ht-net21.ne.jp/~hatagaya/vb/n_sinsu.htm
- zoo_gone
- ベストアンサー率26% (11/42)
ことらはいかがでしょうか
- tomotomo0906
- ベストアンサー率63% (7/11)
同じような質問が過去にもありましたよ。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=336376 参考にして下さい。