Int in Hex umwandeln



  • Hallo !

    Wie "errechne" ich aus einem Integer den zugehörigen Hex-Wert.
    Zahlen liegen im unsigned char (0-255) Bereich.

    🙂



  • Das kannst du nicht errechnen. Dies sind nur untershiedliche Visualisierungen, desselben Inahlts.

    Wenn du sie zur Anzeige bringst, kannst du sie formatieren.
    value=8;
    printf("%3i",value&0xff); dezimal 8
    printf("%4o",value&0xff); oktal 10
    printf("%2x",value&0xff); hexadezimal Buchatben klein 8
    printf("%2X",value&0xff); hexadezimal Buchatben groß 8

    Und binaer, sofern dein Compiler itoa unterstüzt
    char Buffer [8+1];
    _itoa( (value&0xff),buffer, 2 ); 1000
    printf("%s",buffer);



  • Wieso lässt es sich nicht "errechnen" ? 😃

    #include <stdio.h>
    
    int main()
    {	
    	int iZahl=160;				// Dezimale ganze Zahl zwischen 0-255
    	char cHexadezimal[3];
    	(cHexadezimal[0]=iZahl/16)>9 ? cHexadezimal[0]+=55 : cHexadezimal[0]+=48;
    	(cHexadezimal[1]=iZahl%16)>9 ? cHexadezimal[1]+=55 : cHexadezimal[1]+=48;
    	cHexadezimal[2]='\0';
    	printf("\nDezimal: %i  Hex: %s",iZahl,cHexadezimal);
    
    	return 0;
    }
    


  • warum kompliziert das nachbilden was in printf schon drin ist.

    Außerdem berechnest du nicht den Hexwert sondern auch du berechnest die zu gehörige ASCII-Represantation der unsigned integer Ziffer in hexadezimaler Schreibweise.



  • War jetzt auch nicht ganz ernst gemeint 🤡


Anmelden zum Antworten