#include
#include
int main(void) {
int numero;
int i, n_bits,n_base=2, bit_segno=0,n_max;
char nome[3];
printf("Inserisci il numero decimale di tipo:\n");
scanf("%d",&numero);
/* printf("Inserisci la base della rappresentazione (2 per binaria, 3 per ternaria):\n");
scanf("%d",&n_base);
if (n_base == 2) sprintf(nome,"%s","b");;
if (n_base == 3) sprintf(nome,"%s","tr");*/
printf("Inserisci il numero di bits da utilizzare:\n");
scanf("%d",&n_bits);
/* range = -2^(n_bits-1), ..., 2^(n_bits-1) -1 */
n_max = pow(n_base,n_bits-1)-1;
printf("%d\n",n_max);
if ((numero < -n_max+1) || (numero > n_max)) {
printf("Non ci sono abbastanza bits!\n");
return 1;
}
printf("La rappresentazione binaria del numero %d e': ",numero);
if (numero < 0) {
numero += pow(2,n_bits);
bit_segno = 1;
}
for (i=-1; i < n_bits; i++)
printf(" ");
for (i=1; i < n_bits; i++) {
printf("%d\b\b",(numero % n_base));
numero /= n_base;
}
printf("\b%d",bit_segno);
printf("\n");
return 0;
}
Nessun commento:
Posta un commento