如图所示两导体板:VB中二进制转十进制的算法问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/18 08:55:36
我自己写的~ 好象不对 嘿嘿 求高手指教
Function Bin2Dec(num) '二进制转十进制
Dim a, b, c, d
a = num
For i = 1 To Len(a)
b = Mid(a, i, 1)
c = (2 * Val(b)) ^ (Val(Len(a)) - 1)
d = d + c
Next i
Bin2Dec = d
End Function
我发现问题了 嘿嘿
我把0也加进去了~ 哈哈哈 谢谢大家

可以用一个变量保存2的次方,每次乘2就行了,不用每次都用(2 * Val(b)) ^ (Val(Len(a)) - 1)

你的代码修改如下:
Option Explicit
Dim a, b, c, d
Dim num As Double
Dim i As Integer
Function Bin2Dec() '二进制转十进制
a = num
For i = 1 To Len(a)
b = Mid(a, i, 1)
c = (2 * Val(b)) ^ (Val(Len(a)) - i)
d = d + c
Next i
End Function

Private Sub Command1_Click()
num = Text1
d = 0
Call Bin2Dec
Text2 = d
End Sub

Private Sub Form_Load()
Text1 = "": Text2 = ""
End Sub
以下是我的代码:
Option Explicit
Dim binS As String
Dim l As Integer
Dim i As Byte
Dim sum As Double
Private Sub Command1_Click()
sum = 0
binS = Text1
l = Len(binS)
For i = 1 To l
sum = sum + (Val(Mid(binS, i, 1)) * 2) ^ (l - i)
Text2 = sum
Next
End Sub

Private Sub Form_Load()
Text1 = "": Text2 = ""
End Sub
请在TEXT1输入二进制数,按COMMAND1后TEXT2输出其10进制数值。