Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C++]Hex to Dec

  1. #1

    [C++]Hex to Dec

    codice:
    // Convert a decimal number into a hexadecimal number
    AnsiString hex_to_dec(AnsiString src)
    {
          AnsiString ret;
          /*
            pow( x, y );
    
            x^y
          */
          int * vet = new int[src.Length()];
          for(int i = src.Length(); i < 0; i--)
          {
            for(int j = 0; j < src.Length(); j++)
            {
                vet[j] += std::pow(16.0, i);
                switch (src[i])
                {
                  case 'A':
                        vet[j] += 10;
                  break;
                  case 'B':
                        vet[j] += 11;
                  break;
                  case 'C':
                        vet[j] += 12;
                  break;
                  case 'D':
                        vet[j] += 13;
                  break;
                  case 'E':
                        vet[j] += 14;
                  break;
                  case 'F':
                        vet[j] += 15;
                  break;
                }
                ret += vet[j];
            }
          }
          delete vet;
          return ret;
    }
    Nn mi restituisce nulla:(
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Intanto spiega cosa dovrebbe fare il programma...

    Poi credo che l'errore sia in quel "delete" che precede "return".

    Se la funzione restituisce un puntatore e questo lo disallochi, cosa dovrebbe restituire?

    Forse mi sbaglio...

  3. #3
    codice:
     
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    string converti10Beta(int n10, int base)
    {
       string res;
       bool neg = false;
       char alpha[] =
              "0123456789ABCDEFGHIJKLMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
       if(n10 < 0) neg = true;
       n10 = (n10 < 0) ? -n10 : n10;
       while(n10 > 0)
       {
           res.insert(res.begin(), alpha[n10 % base]);
           n10 /= base;
       }
       if(neg) res.insert(res.begin(), '-');
       return res;
    }
    
    int convertiBeta10(string n, int base)
    {
       int res = 0, mult = 1;
       bool neg = false;
       string alpha =
              "0123456789ABCDEFGHIJKLMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
       if(n[0] == '-') neg = true;
       for(int i=n.size()-1; i>=0; --i)
       {
           int pos = alpha.find_first_of(n[i]);
           if(pos == string::npos || pos >= base)
              return ~0;
           res += pos * mult;
           mult *= base;
       }
       return (neg) ? -res : res;
    }
    Risolto ( (C) Cionci )
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

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.