二进制到十进制转换VB.net控制台应用程序

时间:2015-05-17 09:28:52

标签: vb.net console

我想在vb.net控制台应用程序中将二进制转换为十进制。我当前的代码有什么问题?我似乎无法获得正确的二进制文件。

'Binary Numbers
Dim dec, remainder, m, sum As Integer

m = 1

Console.Write("Enter a decimal Number : ")
dec = Console.ReadLine()
While (dec > 0)

    remainder = dec Mod 2
    sum += m * remainder
    dec = dec / 2
    m = m * 10

End While

c.WriteLine("Binary Numbers = {0} ", sum)
c.ReadKey()

1 个答案:

答案 0 :(得分:0)

正如汉斯在评论中所说,你应该设置Option Strict On以禁止可能产生意外结果的自动转换。您还应该在尝试将用户输入转换为数字之前验证用户输入。

您可以使用Convert.ToString将十进制数直接转换为二进制字符串。下面的代码执行该操作,然后(如果您想编写自己的循环代码)相当于原始循环。

Option Explicit On
Option Strict On

Module Module1
    Sub Main()
        Dim dec As Integer, decstr As String, binStr As String = ""

        Do
            Console.WriteLine("Enter a decimal number")
            decstr = Console.ReadLine
        Loop Until Integer.TryParse(decstr, dec)
        Console.WriteLine("Using Convert.ToString: {0}", Convert.ToString(dec, 2))

        Do While (dec > 0)
            Dim remainder As Integer = dec Mod 2
            binStr = remainder.ToString & binStr
            dec = dec \ 2
        Loop

        Console.WriteLine("Using loop: {0}", binStr)
        Console.ReadLine()
    End Sub
End Module