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

VBの関数で
 10進数→2進数への変換
のライブラリはあるのでしょうか?
 それとも自分で作成するのでしょうか?
もし作成する場合、何か参考になるHPを教えて下さい
また作成された方が居られましたら、その関数を頂けないでしょうか
 初歩的な質問で申し訳ございません、よろしくお願い申し上げます

A 回答 (6件)

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(十進数))
    • good
    • 1

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
    • good
    • 0

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
    • good
    • 0
    • good
    • 0

ことらはいかがでしょうか



参考URL:http://www.vector.co.jp/soft/win95/business/se06 …
    • good
    • 0

同じような質問が過去にもありましたよ。



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

参考にして下さい。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=336376
    • good
    • 0

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

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