2009-12-25 117 views
15

如何將二進制字符串(如1001101)轉換爲十進制? (77)如何將二進制轉換爲十進制

+16

你問幾百個問題,沒有提供答案,別人的問題,並且只接受三分之一的問題的答案。這似乎不符合SO的精神。也許你可以通過投票給出好答案並每次指定一個被接受的答案來承認人們爲你提供所有答案的努力? – DOK 2009-12-25 18:01:01

+1

如果我不知道答案 - 我沒有回覆 – Gold 2009-12-25 18:21:15

+7

@黃金:沒有理由不接受你的數百個其他問題的答案。如果你沒有給出應有的信用,沒有人會想要回答。 – 2009-12-25 18:56:32

回答

1
string s=Console.ReadLine(); 

int b=Convert.ToInt32(s,2); 

Console.WriteLine("Input value in base 10 = "+b); 

轉換任何二進制到十進制。 :)

+2

您的答案與@SLaks使用相同的解決方案,並且在此主題中沒有提供任何新增內容。 – zajonc 2016-08-28 19:39:49

1

如果你是一個手工的方式,而不是使用內置的C#庫後,這會工作:

static int BinaryToDec(string input) 
{ 
    char[] array = input.ToCharArray(); 
    // Reverse since 16-8-4-2-1 not 1-2-4-8-16. 
    Array.Reverse(array); 
    /* 
    * [0] = 1 
    * [1] = 2 
    * [2] = 4 
    * etc 
    */ 
    int sum = 0; 

    for(int i = 0; i < array.Length; i++) 
    { 
     if (array[i] == '1') 
     { 
      // Method uses raising 2 to the power of the index. 
      if (i == 0) 
      { 
       sum += 1; 
      } 
      else 
      { 
       sum += (int)Math.Pow(2, i); 
      } 
     } 

    } 

    return sum; 
} 
相關問題