Imprimir binario de número en C

Muhammad Husnain 12 octubre 2023
  1. Sistema de números binarios
  2. Implementaciones de C para conversión
Imprimir binario de número en C

Esta guía trivial trata sobre la implementación de un convertidor de sistemas numéricos decimales a binarios utilizando el lenguaje C. Antes de saltar directamente a la implementación, primero recapitularemos el sistema numérico binario y luego discutiremos múltiples implementaciones de C para convertir una representación decimal en un equivalente binario.

Sistema de números binarios

Cualquier sistema que opera en dos estados discretos o categóricos se conoce como sistema binario. De manera similar, un sistema numérico binario representa números usando solo dos símbolos: 1 (uno) y 0 (cero).

Por lo tanto, también se conoce como el sistema base-2.

Actualmente, la mayoría de las implementaciones de circuitos lógicos basados ​​en transistores utilizan estados binarios discretos. Por lo tanto, todas las computadoras digitales modernas usan sistemas binarios para representar, almacenar y procesar datos.

Por ejemplo, convertir 6 en un sistema numérico binario.

$$ (6)_{10} = (110)_2 $$

Aquí, 6 es el número del sistema numérico decimal con base 10, y su binario correspondiente es 110, que está en el sistema numérico binario con base 2. Veamos el proceso de esta conversión.

Proceso de conversión

Paso 1: Dividir 6 por 2 para obtener la respuesta. Obtienes el dividendo del siguiente paso, usando el cociente entero logrado en esta etapa.

Continúe de esta manera hasta que el cociente llegue a cero.

Dividendo Resto
6/2 = 3 0
3/2 = 1 1
1/2 = 0 1

Paso 2: El binario se puede formar reuniendo todos los residuos en orden cronológico inverso (de abajo hacia arriba).

Siendo 1 el bit más significativo (MSB) y 0 el bit menos significativo (LSB). Por tanto, el binario de 6 es 110.

Implementaciones de C para conversión

Puede haber múltiples formas en el lenguaje C para convertir un número en un sistema numérico binario. Puede ser una solución iterativa o recursiva.

Depende de su elección de programación. Este artículo discutirá una solución recursiva porque es muy sencilla.

Solución 1:

Si number > 1:

  1. colocar number en la pila
  2. función de llamada con number/2 recursivamente
  3. Tome un number de la pila, divídalo por dos y envíe el resto.
#include <stdio.h>

void convertToBinary(unsigned a) {
  /* step 1 */
  if (a > 1) convertToBinary(a / 2);

  /* step 2 */
  printf("%d", a % 2);
}
int main() {
  // Write C code here
  printf("Binary of the number is: ");
  convertToBinary(6);
  printf("\n");

  return 0;
}

Este fragmento de código libera el siguiente resultado.

Binary of the number is: 110

Solución 2:

  1. Comprobar si number > 0
  2. Aplique el operador de desplazamiento a la derecha en 1 bit y luego llame a la función recursivamente.
  3. Salida de los bits del number
#include <stdio.h>
void convertToBinary(unsigned n) {
  if (n > 1) convertToBinary(n >> 1);

  printf("%d", n & 1);
}
int main() {
  // Write C code here
  printf("Binary of the number is: ");
  convertToBinary(8);
  printf("\n");

  return 0;
}

La salida del fragmento de código dado es:

Binary of the number is: 1000
Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

Artículo relacionado - C Binary