Introduction
Lección 18 de 20 del curso Acertijos matemáticos de Coddy.
Un número binario es un número expresado en el sistema numérico de base 2 o sistema numérico binario, un método de expresión matemática que utiliza solo dos símbolos: típicamente "0" (cero) y "1" (uno). [De Wikipedia, la enciclopedia libre]
Las notaciones: 110=12, 210=102, 310=112, 410=1002 significan que los números 1, 2, 3 y 4 en el sistema numérico decimal (sistema numérico de base 10) son iguales a 1, 10, 11 y 100 en el sistema numérico binario.
Contar en binario es similar a contar en cualquier otro sistema numérico. Comenzando con un solo dígito, el conteo avanza a través de cada símbolo, en orden creciente.
Para convertir un número entero de base 10 a su equivalente de base 2 (binario), el número se divide por dos. El resto es el bit menos significativo (el bit más a la derecha). El cociente se divide nuevamente por dos; su resto se convierte en el siguiente bit menos significativo. Este proceso se repite hasta que se alcanza un cociente de uno. La secuencia de restos (incluyendo el cociente final de uno) forma el valor binario, ya que cada resto debe ser cero o uno al dividir por dos. Por ejemplo, 510 se expresa como 1012, ya que:
cinco dividido por dos es 2 y un resto de uno: 5:2 = 2(1). Por lo tanto, el bit menos significativo es uno. A continuación, 2:2=1(0). Así que el siguiente bit menos significativo es cero, y el siguiente es uno.
Desafío
FácilEscribe una función calcBinary que reciba un número entero en base 10 y devuelva su número binario equivalente, en formato de cadena (string).
Intenta hacerlo sin utilizar funciones integradas
Pruébalo tú mismo
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int n;
if (scanf("%d", &n) != 1) n = 0;
char* r = calcBinary(n);
printf("%s\n", r);
return 0;
}