2015-05-17 51 views
0

我想在vb.net控制檯應用程序中將二進制轉換爲十進制。我現在的代碼有什麼問題?我似乎無法得到正確的二進制文件。二進制到十進制轉換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

將'Option Strict On'放在源代碼文件的頂部,讓編譯器告訴您有關編碼錯誤的信息。希望你會發現Console.WriteLine()已經從二進制轉換爲十進制。 –

+0

您的問題標題爲_Binary Decimal_,您的示例代碼將_Decimal轉換爲Binary_,這是它? –

回答

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