Arrays 使用数组和循环将二进制转换为十进制

Arrays 使用数组和循环将二进制转换为十进制,arrays,vb.net,loops,binary,converter,Arrays,Vb.net,Loops,Binary,Converter,我试图写一个VB函数,将二进制转换成十进制。我需要将二进制长度存储在一个数组中,并使用循环找到我的答案。我一直想弄明白这一点有一段时间了。这就是我目前所拥有的也许你能帮上忙 Public Function binaryToDecimal(ByVal Binary As String) Dim myDecimal As Integer Dim blength As Integer = Binary.Length Dim index(blength) As Integer

我试图写一个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
),也不会执行任何操作

但是,如果您想将二进制转换为十进制,这里有一个简单的方法(并且您实际上不需要数组):

函数从字符串的末尾开始,然后向后执行。对于每个字符,它自身递增
x
,如果当前字符为“1”,则
ReturnValue
将按当前
x
递增

例如,该函数将
1111
转换为
15
100000
转换为
32
1011101001
转换为
745

测试:

希望这有帮助


编辑:


还值得一提的是,函数不支持字符串中的空格。如果你想让它这样做,就告诉我,我也会加上。

已经有几天了,我忍不住注意到你从那以后一直在上网。我很好奇,我的回答有帮助吗?
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