Conversione da binario a decimale

di il
9 risposte

Conversione da binario a decimale

In pratica mi si chiede di prendere in input un intero binario(per prelevare le cifre, del numero binario, una per volta, da destra a sinistra usare gli operatori modulo), ora, il tutto mi torna quando le cifre da inserire sono finite, ad esempio 5, scriverò una cosa del tipo:



main()
{
      int integer, decimale;
      
      printf("Inserisci un binario di 5 cifre (0 o 1): ");
	scanf("%d", &integer);
	
	printf("\n\n     %d   %d   %d   %d   %d\n",
	    (integer / 10000), (integer / 1000) % 10,
	    (integer / 100) % 10, (integer / 10) % 10,
	    (integer % 10));

ma..mi si chiede di farlo con un numero non finito di cifre...e sono un po in difficoltà...

9 Risposte

  • Re: Conversione da binario a decimale

    Per cui?

    ~Max
  • Re: Conversione da binario a decimale

    Si beh, il mio problema è quello di non sapere come ottenere la stessa cosa, solo inserendo un numero di cifre non determinato, in quanto l'esercizio proposto, non specifica il numero...volevo solo sapere se e come è possibile ottenerlo...non so se fin dove sono arrivato studiando, sia possibile...non ci sono riuscito...sono principiante del C...e ho fatto solo le singole strutture...selezione: if\else, iterazione while\for...
  • Re: Conversione da binario a decimale

    ...e ho fatto solo le singole strutture...selezione: if\else, iterazione while\for...
    È fatto con una semplice iterazione di 1 riga

    Max
  • Re: Conversione da binario a decimale

    Qualche altro suggerimento?? non so proprio...
  • Re: Conversione da binario a decimale

    Moulo 10 estrae l'elemento dall'intero. diviso 10 lo toglie.

    Ora vai avanti

    Max
  • Re: Conversione da binario a decimale

    Penso di capire...il modulo mi aiuta a trovare le cifre di sinistra, e la frazione scarta quelle piu a destra...ovvero...
    
    
    #include <stdio.h>
    
    int main(){
    
        int bin, cifrabin;
    
    printf("Inserisci il numero binario: ");
    scanf("%d", &numbin);
    
    while(bin > 0){
    
    cifrabin = bin % 10;
    
    }
    
    bin = bin / 10;
    
    return 0;
    }
    
    
    una cosa simile...credo...
    
    
    
    
    
    
    
  • Re: Conversione da binario a decimale

    ...il modulo mi aiuta a trovare le cifre di sinistra
    quelle di destra non di sinistra. La divisione deve stare nell'iterazione.
    Facendo questo costruisci il numero decimale

    Max
  • Re: Conversione da binario a decimale

    Tutto benone grazie ancora per i suggerimenti...delle volte faccio un po di casino, non ricordardo l'abc, della mate ...grazie comunque MAX!!!
    
    
    #include <stdio.h>
    
    int main()
    
    {
    
    int bin, cifra, esponente, decimale, number, potenza;
    
    	
    
    esponente = 2;
    
    potenza = 1;
    
    decimale = 0;
    
    	
    printf("Inserisci il numero binario: ");
    scanf("%d", &bin);
    	
    number = bin;
    	while(number > 0){
    
    cifra = number % 10;
    
    decimale = decimale + cifra * potenza;
    
    potenza = potenza * esponente;
    
    number = number / 10;
    }
    printf("Il decimale è: %d", decimale);
    
    return 0;
    }
    
    
  • Re: Conversione da binario a decimale

    Prego, come ti avevo detto il tutto può essere sintetizzato in 1 riga:
    
    
      for (k=1,dec=0;bin;k*=2,bin/=10)
        dec+=(bin%10)*k;
    
    
    Saluti Max
Devi accedere o registrarti per scrivere nel forum
9 risposte