Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Conversione di un decimale in una base....un problema!!

    Ho scritto questo codice per convertire un numero decimale in una base (da 2 a 16) scelta dall'utente...

    codice:
    #include<stdio.h>
    #define DIM 32     //dichiarazione di una costante per il vettore, di lunghezza 32, equivalente a 4bytes
    int i,n,base,vet[DIM];;
    
    void main()
    
    {
    printf("\n\tImmetti il numero DECIMALE da convertire...  "); scanf("%d",&n); // immissione del valore
    printf("\n\nDigita la base in cui lo vuoi convertire...sotto forma di numero(ad es per convertire in binario digita 2,ecc...)  ");
    scanf("%d",&base);
     {	
           for (i = 0;i<DIM; i++)    // memorizzazione a partire dall'ultimo elemento del vettore
    	{			    
              vet[DIM-1-i]=n%base;	// resto della divisione
              n=n/base;
            }
    
     }
    
     {
    int j; 
    	
         for(j=0;j<DIM;j++)
           {
    	  if(vet[j]>=10) printf("%c ",vet[j]+ 'A' - 10); // controllo per la visulizzazione delle lettere esadecimali
    	  else printf("%c ",vet[j]+'0');  //vengono stampati degli 0 prima del numero vero e propio per permettere una spaziatura tra le cifre del numero
           }                                           		 
              printf("\n\n");
     }
    
    }
    Funge alla perfezione solo che il numero finale viene stampato con tutti 00000 davanti....

    io vorrei stampare solo il numero ma se nn scrivo il
    codice:
    + '0'
    qua
    codice:
    else printf("%c ",vet[j]+'0');
    mi stampa una riga di quadratini strani...come potrei fare??

    :master:

    help è importante
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  2. #2
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012

    Re: Conversione di un decimale in una base....un problema!!

    Originariamente inviato da andrea_NET-_DSL
    Ho scritto questo codice per convertire un numero decimale in una base (da 2 a 16) scelta dall'utente...

    codice:
    ...
        int j; 
    	
         for(j=0;j<DIM;j++)
           {
              if(vet[j]) {
    	  if(vet[j]>=10) printf("%c ",vet[j]+ 'A' - 10); // controllo per la visulizzazione delle lettere esadecimali
    	  else printf("%c ",vet[j]+'0');  //vengono stampati degli 0 prima del numero vero e propio per permettere una spaziatura tra le cifre del numero
              }
           }                                           		 
              printf("\n\n");
     }
    
    }
    Funge alla perfezione solo che il numero finale viene stampato con tutti 00000 davanti....

    io vorrei stampare solo il numero ma se nn scrivo il
    codice:
    + '0'
    qua
    codice:
    else printf("%c ",vet[j]+'0');
    mi stampa una riga di quadratini strani...come potrei fare??

    :master:

    help è importante

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.