Anda di halaman 1dari 2

#include <stdio.

h>
#include <stdlib.h>
#include <stdbool.h>

void binario(int numero,char *v){


itoa(numero,v,2);
}
void octal(int numero,char *vector){
itoa(numero,vector,8);
}
void hexagecimal(int numero,char *vector){
itoa(numero,vector,16);
}
void mostrar(char *v,int tamMostrar,int tam){
int i;
for(i=tamMostrar;i<tam;i++){
printf("%c",v[i]);
}
}
int cantidadBitsBinario(int numero){
int aux,tam;
char cadena[30];
aux=numero-(numero*2);
itoa(aux,cadena,2);
tam=strlen(cadena)+1;
return tam;
}
int cantidadBitsOctal(int numero){
int aux,tam;
char cadena[30];
aux=numero-(numero*2);
itoa(aux,cadena,8);
tam=strlen(cadena)+1;
return tam;
}
int cantidadBitsHexagecimal(int numero){
int aux,tam;
char cadena[30];
aux=numero-(numero*2);
itoa(aux,cadena,16);
tam=strlen(cadena)+1;
return tam;
}
void verificarPositivo(int numero,bool *ban){
char vB[200],vO[200],vH[200];
*ban=false;
if(numero>=0){
itoa(numero,vB,2);
printf("\nEL COMPLEMENTO A 2 EN BINARIO ES: ");
puts(vB);
itoa(numero,vO,8);
printf("EL COMPLEMENTO A 2 EN BINARIO ES: ");
puts(vO);
itoa(numero,vH,16);
printf("EL COMPLEMENTO A 2 EN BINARIO ES: ");
puts(vH);
*ban=true;
}
}
int main()
{
int numero,tamBinario,tamBitsBinario,tamMostrarBinario,
tamOctal,tamBitsOctal,tamMostrarOctal,
tamHexagecimal,tamBitsHexagecimal,tamMostrarHexagecimal;
char vB[200],vO[200],vH[200],opt;
bool ban;
fflush(stdin);
do{
printf("\t\t\t\t\t\t\t\tPablo's Program\n\n");
printf("\t******COMPLEMENTO A 2 BINARIO OCTAL Y HEXAGECIMAL******\n");
printf("\nINGRESE UN NUMERO: ");
scanf("%d",&numero);

verificarPositivo(numero,&ban);
if(ban==false){
binario(numero,vB);
octal(numero,vO);
hexagecimal(numero,vH);

tamBinario=strlen(vB);
tamBitsBinario=cantidadBitsBinario(numero);

tamOctal=strlen(vO);
tamBitsOctal=cantidadBitsOctal(numero);

tamHexagecimal=strlen(vH);
tamBitsHexagecimal=cantidadBitsHexagecimal(numero);

tamMostrarBinario=tamBinario-tamBitsBinario;
tamMostrarOctal=tamOctal-tamBitsOctal;
tamMostrarHexagecimal=tamHexagecimal-tamBitsHexagecimal;

printf("\nEL COMPLEMENTO A 2 EN BINARIO ES: ");


mostrar(vB,tamMostrarBinario,tamBinario);
printf("\nEL COMPLEMENTO A 2 EN OCTAL ES: ");
mostrar(vO,tamMostrarOctal,tamOctal);
printf("\nEL COMPLEMENTO A 2 EN HEXAGECIMAL ES: ");
mostrar(vH,tamMostrarHexagecimal,tamHexagecimal);
}
printf("\n\nDesea ingresar otro numero!!!... \nPresione la tecla S/s, caso
contrario pulse otra tecla: ");
scanf("%s",&opt);
system("cls");
}while(opt=='s'||opt=='S');
return 0;
}