memcmp算法:1011110010010101100011101000010010011000000110111111111001谁能帮我换成十进制的

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 14:01:17
最好能提供算法吗?

'以下全部控件都用默认值
'text1~8
'label1~11
'command1~4
'frame1~2
'
'***********************************************************
Private Sub Command1_Click() '十进制转二进制确定按钮
Dim varnum1, varnum2, varnum3, narnum4, nodnum1(7), nodnum2(7), nodnum3(7), nodnum4(7)

varnum1 = Text1.Text '赋值
Do While varnum1 > 0
For i = 0 To 7
nodnum1(i) = varnum1 Mod 2 '取整
varnum1 = varnum1 \ 2 '取余
Next 'strreverse()函数是反向排列字符
Label1.Caption = StrReverse(nodnum1(0) & nodnum1(1) & nodnum1(2) & nodnum1(3) & nodnum1(4) & nodnum1(5) & nodnum1(6) & nodnum1(7)) & "."
Loop
'以下重复三次
varnum3 = Text3.Text
Do While varnum3 > 0
For i = 0 To 7
nodnum3(i) = varnum3 Mod 2
varnum3 = varnum3 \ 2
Next
Label3.Caption = StrReverse(nodnum3(0) & nodnum3(1) & nodnum3(2) & nodnum3(3) & nodnum3(4) & nodnum3(5) & nodnum3(6) & nodnum3(7)) & "."
Loop

varnum2 = Text2.Text
Do While varnum2 > 0
For i = 0 To 7
nodnum2(i) = varnum2 Mod 2
varnum2 = varnum2 \ 2
Next
Label2.Caption = StrReverse(nodnum2(0) & nodnum2(1) & nodnum2(2) & nodnum2(3) & nodnum2(4) & nodnum3(5) & nodnum2(6) & nodnum2(7)) & "."
Loop

varnum4 = Text4.Text
Do While varnum4 > 0
For i = 0 To 7
nodnum4(i) = varnum4 Mod 2
varnum4 = varnum4 \ 2
Next
Label4.Caption = StrReverse(nodnum4(0) & nodnum4(1) & nodnum4(2) & nodnum4(3) & nodnum4(4) & nodnum4(5) & nodnum4(6) & nodnum4(7))
Loop

End Sub

Private Sub Command2_Click() '十进制转二进制清除按钮,清除文本框,标签中的文本
Label1 = ""
Label2 = ""
Label3 = ""
Label4 = ""
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text1.SetFocus '设定Text1获得焦点
End Sub

Private Sub Command4_Click() '二进制转十进制清除按钮,清除文本框,标签中的文本
Label6 = ""
Label7 = ""
Label8 = ""
Label9 = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text5.SetFocus
End Sub

Private Sub Text1_Change() '限制只能输入3位
Text1.MaxLength = 3
Text2.MaxLength = 3
Text3.MaxLength = 3
Text4.MaxLength = 3
End Sub

Private Function ConvertBinToDec(strBin As String) As String 'ConvertBinToDec方法是二进制转换成十进制
Dim tmpVal As String, iCount As Long
Dim tmpV As String
For iCount = 1 To Len(strBin) '下面可是重点:实现2^7+2^6+2^5+2^4+2^3+2^1+2^0
tmpVal = Val(tmpVal) + Val(Mid$(strBin, iCount, 1)) * (2 ^ (Len(strBin) - iCount))
Next iCount 'val()返回数值 mid$()从一个字符串中返回指定的字符 icount是设置从第几个字符开始,1是指获取1个字符 ?
ConvertBinToDec = tmpVal
End Function
Private Sub Command3_Click() '二进制转十进制按钮
Dim a As String, b As String, c As String, d As String
a = Text5.Text
va = ConvertBinToDec(a) '以下连续调用方法四次
Label6.Caption = va

c = Text7.Text
Vc = ConvertBinToDec(c)
Label8.Caption = Vc

d = Text8.Text
Vd = ConvertBinToDec(d)
Label9.Caption = Vd

b = Text6.Text
V1 = ConvertBinToDec(b)
Label7.Caption = V1
End Sub
具体你再修改修改

212326939856236537