2009-12-25 20 views
15

¿Cómo puedo convertir una cadena binaria, como 1001101 en decimal? (77)Cómo convertir el binario al decimal

+16

Ha solicitado a varios cientos de preguntas, siempre y cuando no hay respuestas a cualquier otra persona de preguntas, y sólo se acepta responde en un tercio de tus preguntas. Eso no parece estar en el espíritu de SO. ¿Quizás podría reconocer los esfuerzos de las personas que le brindan todas esas respuestas al votar buenas respuestas y designar una respuesta aceptada cada vez? – DOK

+1

si no sé las respuestas - no respondo – Gold

+7

@ Oro: no es motivo para no aceptar respuestas a cualquiera de sus cientos de otras preguntas. Nadie va a querer responder si no le das crédito donde es debido. –

Respuesta

1
string s=Console.ReadLine(); 

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

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

convertir cualquier binario a decimal. :)

+2

Tu respuesta utiliza la misma solución que @SLaks y no proporciona nada nuevo en este tema. – zajonc

1

Si lo que busca es una forma manual en lugar de utilizar incorporado en las bibliotecas de C#, esto funcionaría:

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; 
} 
Cuestiones relacionadas