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

时间:2015-12-12 09:02:33

标签: 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
    For index = index To 0 Step -1
        myDecimal += Binary * (2 ^ (blength - 1))
        blength = blength - 1
    Next
    Return myDecimal
End Function

1 个答案:

答案 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

经过测试:http://ideone.com/SsZ3d2

希望这有帮助!

编辑:

还值得一提的是该函数不支持字符串中的空格。如果你想要它,那就告诉我,我也会添加它。