Cómo convertir binarios en un entero del lenguaje C de programación

Escrito por carlos mano | Traducido por xochitl gutierrez cervantes
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
Cómo convertir binarios en un entero del lenguaje C de programación
Las computadoras almacenan enteros como cadenas de 1 y 0. (Jupiterimages/Photos.com/Getty Images)

Los binarios y decimales son dos formas diferentes de representar números enteros. En el lenguaje C de programación, los binarios se almacenan generalmente en cadenas de carácteres o algún otro tipo de arreglo. Las cadenas de carácteres en C se denominan punteros porque apuntan al orden inferior de un bit de una cadena binaria, la cual termina con el carácter especial C "\0" seguido del bit superior. Para convertir esta cadena binaria en un valor equivalente integrado necesitas de un programa para escribir repetidamente o como recurso.

Nivel de dificultad:
Moderado

Otras personas están leyendo

Instrucciones

  1. 1

    Desarrolla un algoritmo para convertir antes de empezar a escribir un código. Necesitas dos variables: un acumulador para seguir los resultados y la variable "energía" para dar cuenta del aumento de poder de 2 que describe las diferentes posiciones del bit de un número binario. Por ejemplo, el entero 13 se almacena como binario 1101. Este número es (1 X 2^3) + (1 X 2^2) + (0 X 2^1) +(1 X 2^0) o 8 + 4 + 0 + 1 = 13. Porque la forma en los dígitos binarios se almacenan en C, se debe empezar en el orden inferior del bit y multiplicar cada bit para incrementar los valores de la variable de energía y agregarlos al acumulador.

  2. 2

    Descubre la función en el pseudocódigo, examínalo con unos ejemplos, ajústalo si es necesario y escribe el código C directamente del pseudocódigo. Nombre de la función: entero2binario. Entrada: un puntero a un tipo de carácter. Salida de un entero. Empieza la función definiendo dos variables de enteros: acc, un acumulador y pow, un estante 1. Continúa haciendo 3 afirmaciones en el bucle hasta que el puntero apunte al carácter "\0", entonces regresa el valor de acc como el valor de la función. Los tres bucles son: si el puntero apunta a "1", agrega el valor del estante al acumulador, dobla el valor del estante e incrementa el puntero para que apunte al siguiente bit.

  3. 3

    Convierte el pseudocódigo al código C: int binary2integer(char * p){ int acc,pow; acc = 0; pow = 1; while (p != '\0'){ if (p == '1') acc +=pow; pow *= 2; p++} return acc}. Este código debe examinarse con varios ejemplos. Asegúrate de revisar los valores límites como 0 y 1, así como también varios valores como 11111, 00000, 10101 y 01010.

Consejos y advertencias

  • La versión recursiva usa al estante y al acumulador como variables y las administra de manera conjunta. De ahí que las llamadas tengan esta apariencia: RecursiveB2I(p 1) y la función tenga esta forma: int RecursiveB2I(char * p int pow){if p* == '\0' then return 0; return (p* == '1')?pow:0 + RecursiveB2I(p 2*pow}
  • Si clasificas los números binarios en diferentes formatos, la función será diferente, pero la idea básica es la misma.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles