我正在尝试编写一个将二进制转换为十进制的VB函数。我需要将二进制长度存储在一个数组中并使用循环来查找我的答案。我一直试图解决这个问题。这就是我到目前为止你可以提供的帮助。
Public Function binaryToDecimal(ByVal Binary As String)
Dim myDecimal As Integer
Dim blength As Integer = Binary.Length
Dim index(blength) As Integer
For index = index To 0 Step -1
myDecimal += Binary * (2 ^ (blength - 1))
blength = blength - 1
Next
Return myDecimal
End Function
答案 0 :(得分:0)
我根本不理解你的代码......你甚至都没有用任何东西填充数组。如果二进制字符串包含零(0
)。
但是如果你想将二进制转换为十进制,这是一个简单的方法(你不需要一个数组):
Public Function BinaryToDecimal(ByVal Binary As String) As Integer
Dim ReturnValue As Integer = 0
Dim x As Integer = 1
For i = Binary.Length - 1 To 0 Step -1
If Binary.Chars(i) = "1"c Then
ReturnValue += x
End If
x += x
Next
Return ReturnValue
End Function
该函数从字符串的末尾开始并向后移动。对于每个字符,它会自动递增x
,如果当前字符为' 1,则ReturnValue
会按当前x
递增。
该功能会将1111
转换为15
,将100000
转换为32
,将1011101001
转换为745
。
希望这有帮助!
编辑:
还值得一提的是该函数不支持字符串中的空格。如果你想要它,那就告诉我,我也会添加它。