• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

HEX to ASCII mit C

MatzeED7

Newbie
Hallo,

ich habe folgendes Problem.

in meinem Projekt habe ich als Ausgangswerte unsigned short values.
diese möchte ich aber als ASCII Zeichen ausgeben.
zb habe ich den dezimalen Ausgangswert 20299, den ich dann in
seinen hex wert von 4F4B umwandle. nun muss ich aber den wert in zwei teile aufteilen um aus 4F=O und 4B=K zu erhalten.
ich hatte versucht :
Code:
        int A=20299;
	printf("%x \n",A);
	char mychar[4];
	sprintf(mychar, "%x",A);
	printf("string= %s\n",mychar);
	printf("char= %c\n",A);

aber ich weis net wie ich mit C die beiten hinteren werte als 4B ansprechen/einzeln kopieren kann um dann mit das ASCII zeichen zu erhalten?

Gruss Matze
 

abgdf

Guru
Hallo,

ach, ich mag kleine C-Rätsel :p .

Du brauchst gar keine Strings, es geht schon mit nur etwas Mathematik:

Code:
#include <stdio.h>

int main ()
{
int A=20299;

int b=A/4096;
int c=(A-b*4096)/256;
int d=(A-b*4096-c*256)/16;
int e=A-b*4096-c*256-d*16;

char f=b*16+c;
char g=d*16+e;

printf("A in HEX ist %x.\n", A);
printf("Erster Buchstabe ist %c.\n", f);
printf("Zweiter Buchstabe ist %c.\n", g);
}

Viele Grüße
 
OP
M

MatzeED7

Newbie
wie kommt man den auf diese Zahlen, zb 4096...
besser gesagt warum funktioniert das denn 16*16=256
256*16=4096 aber warum geht das
 
OP
M

MatzeED7

Newbie
sorry ,danke noch mal für dieses rechenbeispiel ... bin selber druaf gekommen, war schon ein bissel betriebsblind ...

danke noch mal

gruss matze
 
Oben