Dezimal -> Hex



  • Hallo,

    ich benötige eine Funktion, der man eine dezimale Integerzahl übergibt, welche dann mit cout als Hex Zahl angezeigt werden soll. Diese Funktion muss sich aber an den Ansi c++ Standard halten, daher weiß ich nicht wie ich sie realisieren kann.
    Hat vielleicht jemand eine Idee?

    MFG

    Strater



  • Hi!

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      cout << hex << 150 << endl;
    }
    

    MfG Jester



  • Ich finde das die Frage langsam mal in die FAQ sollte, da sich in letzter Zeit die Anfragen danach häufen 😕

    @Jester:
    es fehlt noch

    #include <iomanip>
    

    😉



  • k1ro schrieb:

    Ich finde das die Frage langsam mal in die FAQ sollte, da sich in letzter Zeit die Anfragen danach häufen 😕

    @Jester:
    es fehlt noch

    #include <iomanip>
    

    😉

    Aber dann ne FAQ, die das ganze Konvertierungsthema mal abdeckt (hex->dez, dez->hex, hex->oct etc)



  • Also ich kann hex->dec und dec->hex erläutern und eine c++ Funktion dazu schreiben.



  • the_hero99 schrieb:

    Also ich kann hex->dec und dec->hex erläutern und eine c++ Funktion dazu schreiben.

    Ich glaub das kann hier so ziemlich jeder 😃



  • Die Frage "Dezimal in Hexdezimal umwandeln" ist sowieso Müll. Wenn dann "Dezimal einlesen, den Wert dann als Hexadezimal ausgeben".



  • Es wurde ja angeboten nen FAQ Eintrag zu erstellen, und ich habe nur meine Hilfe angeboten.
    Aber wurde abgelehnt.



  • interpreter und ich (und irgend so ein cracksüchtiger 😃 sorry weiss den namen jetzt nicht mehr... 😉 ) haben das doch letztens erst wieder "gespielt"...

    wie wärs mit dem eintrag in der FAQ

    gibt zahl z mit der basis b aus 2<=b<=16

    void int2basis(unsigned int z,unsigned int b){if(z){int2basis(z/b,b);printf("%c","0123456789abcdef"[z%b]);}}
    


  • cracksüchtiger... 😃
    christoph rackwitz heiß ich

    ich hab so einen basenumwandlungsquatsch mal mit basic auf nem grafiktaschenrechner gemacht. ging von basis 2 bis 36 in allen richtungen, mit ganzzahl als zwischenschritt.

    an deiner funktion sieht man es mal wieder: rekursion!



  • Windalf schrieb:

    interpreter und ich (und irgend so ein cracksüchtiger 😃 sorry weiss den namen jetzt nicht mehr... 😉 ) haben das doch letztens erst wieder "gespielt"...

    wie wärs mit dem eintrag in der FAQ

    gibt zahl z mit der basis b aus 2<=b<=16

    void int2basis(unsigned int z,unsigned int b){if(z){int2basis(z/b,b);printf("%c","0123456789abcdef"[z%b]);}}
    

    😃



  • Hi!

    Habe mir erlaubt die Funktion mal so umzuschreiben das diese einen String zurückliefert und nicht direkt ausgibt:

    std::string int2base(unsigned int z,unsigned int b)
    {
    	if(z) {
    		std::string x("0123456789abcdef");
    		return int2base(z/b,b) + x[z%b];
    	}
    	return "";
    }
    

    Code-Hacker


Anmelden zum Antworten