Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    ora ho inizializzatocome hai detto tu ...e adesso come risultato mi viene 0.

  2. #12
    Originariamente inviato da galislorer
    ora ho inizializzatocome hai detto tu ...e adesso come risultato mi viene 0.
    Ah bene quindi vedi che un passo avanti lo abbiamo fatto?
    Posta il codice aggiornato però, altrimenti se non sappiamo a che valori hai fatto l'inizializzazione è un po' difficile aiutarti...

  3. #13
    void conversionedecimale(char stringa[dim],int lunghezza,char dec[dim])
    {
    int i=0;
    int j=0;
    int peso=1;
    int potenza=0;
    char numero=0;
    strcpy(dec,stringa);
    for(i=0;i<lunghezza;i++)
    {
    while(j<potenza)
    {
    peso=2*peso;
    j++;
    }
    j=0;
    potenza++;
    numero=numero+dec[i]*peso;
    }
    printf("il numero decimale e': %d",numero);
    }

  4. #14
    OK, adesso esegui passo passo la funzione e guarda ad ogni step come si costruisce il numero.

    Vedrai che ci sono un paio di errori concettuali: prima di tutto, dato che parti dal primo carattere della stringa binaria (il più significativo) il peso deve diminuire ad ogni carattere, non aumentare.

    Inoltre non devi fare il calcolo con dec[i] perchè quello è un carattere ASCII. Devi sottrarre '0' (0x30) per avere 0 o 1.

    Infine, se vuoi calcolare il peso in quel modo devi reinizializzarlo a 1 ad ogni ciclo, altrimenti continua a raddoppiare.

    Il codice postalo tra tag CODE, altrimenti si perde la formattazione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.