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ß 8Und 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