Resultados 1 a 3 de 3
  1. #1
    Membro
    Data de Ingresso
    Nov 2005
    Localização
    Minas Gerais :: Belo Horizonte
    Posts
    398

    Simples header - Bases numéricas

    Hi,
    Segue abaixo um simples header que pode ser utilizado para conversões de bases numéricas.
    O header possui as seguintes funções:

    dec2bin - Converte um valor de decimal para binírio;
    dec2oct - Converte um valor de decimal para octal;
    dec2hex - Converte um valor de decimal para hexadecimal;

    bin2dec - Converte um valor de binírio para decimal;
    oct2dec - Converte um valor de octal para decimal;
    hex2dec - Converte um valor de hexadecimal para decimal.

    Segue abaixo o código:

    bases.h
    Código:
    #include <math>
    #include <string>
    #include <cstdlib>
    #include <cstdio>
    // Conversão de decimal(sem sinal) para binírio
    char* dec2bin(unsigned long dec)
    {
      string bin;
           while(dec > 0){
                     bin += char(dec % 2 + '0');
                     dec /= 2;}
         return strrev((char*)bin.c_str()); 
          
          }
    
    // Conversão de decimal para octal
    long dec2oct(unsigned long dec){
         string oct;
           while(dec > 0)
           {
             oct += char(dec % 8 + '0');
             dec /= 8;}         
                     
           return atoi(strrev((char*)oct.c_str()));
           
    }
    
    // Conversão de decimal (sem sinal) para hexadecimal
    char* dec2hex(unsigned long dec){
         string hex;
         char v;
           while(dec > 0)
           {
             v = char(dec % 16 + '0'); 
             if(v <= '9')
             hex+= v;
             else
             hex+= 'A' + (v-'0') % 10;
                              
             dec /= 16;}         
                     
           return strrev((char*)hex.c_str());
           
    }
    
    // Conversão de binírio para decimal
    unsigned long bin2dec(char * bin)
    {
        unsigned long dec=0;
        int i;
    for(i=0;i<strlen> 1) for(i = 0;i<strlen> 7) return 0;
    
        for(i = 0;i<strlen(aux);i++)    dec  = (dec * 8) + aux[i]-'0';
    
    return dec;
    }
    
    //Conversão de hexadecimal para decimal
    unsigned long hex2dec(char * hex)
    {
       unsigned long dec=0;
        int i;
        
    for(i=0;i<strlen> 'F' || hex[i] > 'f') return 0;
    else if(hex[i] >= 'a' && hex[i] <= 'f') hex[i] = hex[i]-32;
    switch(hex[i]){
     case 'A': dec = (dec*16)+ 10; break;
     case 'B': dec = (dec*16)+ 11; break;
     case 'C': dec = (dec*16)+ 12; break;
     case 'D': dec = (dec*16)+ 13; break;
     case 'E': dec = (dec*16)+ 14; break;
     case 'F': dec = (dec*16)+ 15; break;
     default:
    dec = (dec*16)+ hex[i]-'0';                              
    }
    }
    return dec;
    }

    Bye

  2. #2
    Newbie
    Data de Ingresso
    Apr 2006
    Posts
    113
    e pra C ou C++???

  3. #3
    Membro
    Data de Ingresso
    Nov 2005
    Localização
    Minas Gerais :: Belo Horizonte
    Posts
    398
    Hi,
    C++
    Bye.

Tópicos Similares

  1. [Pedido]-Conversor de Bases Numericas
    Por playbyu no fórum Dúvidas
    Respostas: 5
    Último Post: 03 Mar 2009, 17:16

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •