Arrays 使用数组和循环将二进制转换为十进制
我试图写一个VB函数,将二进制转换成十进制。我需要将二进制长度存储在一个数组中,并使用循环找到我的答案。我一直想弄明白这一点有一段时间了。这就是我目前所拥有的也许你能帮上忙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
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