hex string to unsigned int



  • hi,

    int hex2int(string hex)     
    {
            int dec=0;
    	    int fakt=1;
    
            for (int i=hex.length()-1; i>=0; i--)
            {
                    (hex[i]>57)?hex[i]-=55:hex[i]-=48; 
                    dec+=(int)hex[i]*fakt;
                    fakt*=16;                   
            }
            return dec;
    }
    

    geht sowas auch mit hex >> std::dec >> dec ?

    cu



  • Hi,

    also sowas würde ich schonmal gar nicht machen:

    hexe schrieb:

    ...
                    (hex[i]>57)?hex[i]-=55:hex[i]-=48; 
    ...
    

    Mal abgesehen davon, dass das recht verwirrender Code ist, ist es unportabel.

    Warum nicht einfach mit C++ ? ;

    #include <iostream>
    #include <sstream>
    #include <iomanip>
    
    using namespace std;
    
    int main() {
       istringstream in("FFFF");
       int i;
       in >> hex >> i;
       cout << i << "\n";
       return 0;
    }
    

    😉

    Gruß,

    Simon2.


Anmelden zum Antworten