|
▼kein さん:こんばんわ、ちんといいます。
10進ー>2進の変換ですが、命令数が少なくなれば、
処理速度が高速になります。
スピードは比較してませんが、参考サイトのプログラミングを添付します。
Private Function Convert10to2(Value As Long) As String
Dim lngBit As Long
Dim strData As String
Do Until (Value < 2 ^ lngBit)
If (Value And 2 ^ lngBit) <> 0 Then
strData = "1" & strData
Else
strData = "0" & strData
End If
lngBit = lngBit + 1
Loop
Convert10to2 = strData
End Function
または、
Function DecToBin(ByVal Dec As Long) As String '10進法→2進法
'左からループ変数、桁数、2進法文字列
Dim cnt&, keta&, Bin$
On Error GoTo Trap
'桁数チェック
If Dec < 0 Or Dec >= 2 ^ 32 Then Exit Function '桁数を確認する
For cnt = 0 To 31
If Dec < 2 ^ cnt Then
keta = cnt - 1
Exit For
End If
Next
'上の位から分解していく
For cnt = keta To 0 Step -1
Bin = Bin + CStr((Dec \ (2 ^ cnt)) Mod 2)
Next
DecToBin = Bin
Trap:
End Function
2種類UPします。
サイトの検索方法は、vba 2進変換 で、探してみて下さい。
以上、参考までに・・・
|
|