#include<stdio.h>
#include<stdlib.h>
#include <string.h>

int main(int argc, char *argv[]){

    char cadena[20];
    int numero;
 

    printf("\nIntroduce un número para mostrar: ");
    scanf("%d", &numero);

    printf("\nEl número en decimal es %d", numero);
    printf("\nEl número en octal es %o", numero);
    printf("\nEl número en hexadecimal es %x", numero);


// Opción 1
    // itoa(numero, cadena, 2);

    printf("En binario es : %s");

/* Opción 2

	 // * C++ version 0.4 char* style "itoa":
	 // * Written by Lukás Chmela
	 // * Released under GPLv3.
 	
    int base = 2;

    char* itoa(int numero, char* cadena, int base) {
		// check that the base if valid
		if (base < 2 || base > 36) { *cadena = '\0'; return cadena; }

		char* ptr = cadena, *ptr1 = cadena, tmp_char;
		int tmp_value;

		do {
			tmp_value = numero;
			numero /= base;
			*ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - numero * base)];
		} while ( numero );

		// Apply negative sign
		if (tmp_value < 0) *ptr++ = '-';
		*ptr-- = '\0';
		while(ptr1 < ptr) {
			tmp_char = *ptr;
			*ptr--= *ptr1;
			*ptr1++ = tmp_char;
		}
		return cadena;
	}
*/


/* Opción 3
*/


   int bin[8];
   int aux;

    printf("\nEl número en binario es ");

   for (aux = 7; aux >= 0; aux--) {
      if (numero % 2 == 0)
         bin[aux] = 0;
      else
         bin[aux] = 1;
      numero = numero / 2;
   }

   for (aux = 0; aux < 8; aux++)
    
    printf("%d ", bin[aux]);
    printf("\n");


    return 0;

    
}