用VB.NET将二进制数转换为十进制数

来源:百度知道 编辑:UC知道 时间:2024/05/17 07:43:22
我是这么遍的,但是最后一个输出是0,高手看一下是怎么回事
Module Module1

Sub Main()
Dim b, w, i, sum As Integer
Dim a As Long
Console.WriteLine("请输入一个二进制数")
a = Console.ReadLine()
Console.WriteLine("请输入这个二进制数的位数")
w = Console.ReadLine()
b = w
sum = 0
For i = b To 0
If a - (1 * 10 ^ b) >= 0 Then
sum = sum + 1 * 10 ^ b
a = a - (1 * 10 ^ b)
b = b - 1
End If
Next
Console.WriteLine(sum)
Console.ReadLine()

End Sub

End Module

.NET 程序写成你这样也算厉害了,好好看看下面的代码

Sub Main()
Console.WriteLine("请输入一个二进制数")
Console.WriteLine(bin2int(Console.ReadLine()))
Console.ReadKey()
End Sub

Function bin2int(ByVal bin As String) As Integer
Dim i As Long
For i = 1 To bin.Length
bin2int = bin2int * 2 + Val(Mid(bin, i, 1))
Next i
End Function

Sub Main()
Console.WriteLine("请输入一个二进制数")
Console.WriteLine(bin2int(Console.ReadLine()))
Console.ReadKey()
End Sub

Function bin2int(ByVal bin As String) As Integer
Dim i As Long
For i = 1 To bin.Length
bin2int = bin2int * 2 + Val(Mid(bin, i, 1))
Next i
End Function