In c hexzahl in char arr?
also ich möchte zahlen als maximal 4 stellige hexzahl darstellen
also 10 wäre dann 0x000A
ich möchte das mithilfe der ascii tablee codieren
also wa sich machen würde wäre, ich teile die 10 solange durch 16 bis kein rest mehr da ist oder ich 0 beim teilen rauskriege, also die hexzahl kriege ich raus und dann möchte ich die hexzahl meinetwegen 0x000A in ein char array speichern, dabei soll es aber so sein, dass 2 byte des chararrays nur dafür genutzt werden soll, also deswegen könnte ich halt nur das über die hex ascii zahl machen, also sagen wir ich hab 0x000A dann hab ich 2 teile einmal 00 und 0A jeweils in einem Byte, aber wie wandle ich das um, dass ich dann das character bekomme
das wäre dann ja NUL ^@ für 00 und LF ^J für 0A, ich könnte das alles natürlich in ein array packen und dann jeweils vergleichen und suchen, aber das wäre doch blöd
also wie machen ich das, also kurz ich habe meine beiden teil hexe, also 00 und 0A und will in mein char in ein element NUL ^@ speichenr und in das andere LF ^J, das würde ja so gehen char[0]= 0x00;
hab ich probiert funktioniert, aber wie mach ich das wenn ich das sozusagen in einer variablen habe also 00 in einem char array bzw. 0A
1 Antwort
Deine Frage ergibt keinerlei Sinn und ist total konfus.
2 Hexstellen repräsntieren einen char, ich kann folgerichtig ein 16-Bit Wort mit 4 Hexstellen repräsentieren. Will ich diese Repräsentation speichern, dann brauche ich einen char je Symbol bei einer ASCII-Kodierung. Nutze ich 2 chars, dann kann ich das 16-Bit Wort darin speichern, zwei aufeinanderfolgende chars sind genau das (vorbehaltlich der Endianess versteht sich).
Du möchtest also im Endeffekt den 16-Bit Wert in 2 8-Bit Werte teilen?
first=(c & 0xFF00) >> 8;
second=c && 0X00FF;
Was ich hier First udn Second nenne ikönnten auch chars eines Arrays sein.
P.S.: Aber das könntest Du auch je nach Endianess mit eienr direktne Zuweisung erreichen.
ok danke, ich prober mit ob ich es implementiert bekomme
also ich will nur die länge speichern bzw. ne int zshl
int a = 10;
jetzt will ich ein char array haben, dass diese 10 repräsentiert, natürlich nicht char array = {'1', '0'};
denn so kann ich nur zahlen bis 99 haben, ich möchte aber zahlen der größe irgendwas mit 60000 haben (2^16-1 wegen 0xFFFF, also 65535);
also was ich mir vorgestellt habe wäre
char array = {'NUL ^@','LF ^J'}