84 lines
1.5 KiB
C
84 lines
1.5 KiB
C
#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;
|
|
|
|
|
|
} |