ich bin nun endlich soweit, den Code hier einmal zu veröffentlichen, aktuell habe ich aber noch ein Problem vor mir, wo ich ein paar Fragen zu habe:
Code: Alles auswählen
int countdigits(unsigned int x)
{
unsigned count=1;
unsigned int value= 10;
while (x>=value)
{
value*=10;
count++;
}
return count;
}
char * twoint2one ( unsigned int *zahl, unsigned char *septs)
{
unsigned int i = 0, j=0;
j = countdigits(zahl);
printf("groesse %i\n", j);
for (i=0;i<j;i++)
{
*septs = *zahl++ << 4;
*septs |= *zahl;
printf ("Int: %i Hex: %02x \n", *septs, *septs);
*septs++;
*zahl++;
}
*septs = '\0';
}
Das Ascii Array was empfangen bzw. übergeben wird muss in seinen Werten als INT umgewandelt werden.
So sieht das 1. Ergebnis aus. Folgender Hexwert kommt rein:
C8309BFD0625D172D059FE9ECFCB6E40
hieraus wird ein int array erzeugt:
und das wird dann zusammengeschoben ->Int: 12 Hex: 0c
Int: 8 Hex: 08
Int: 3 Hex: 03
Int: 0 Hex: 00
Int: 9 Hex: 09
Int: 11 Hex: 0b
Int: 15 Hex: 0f
Int: 13 Hex: 0d
Int: 0 Hex: 00
Int: 6 Hex: 06
Int: 2 Hex: 02
Int: 5 Hex: 05
Int: 13 Hex: 0d
Int: 1 Hex: 01
Int: 7 Hex: 07
Int: 2 Hex: 02
Int: 13 Hex: 0d
Int: 0 Hex: 00
Int: 5 Hex: 05
Int: 9 Hex: 09
Int: 15 Hex: 0f
Int: 14 Hex: 0e
Int: 9 Hex: 09
Int: 14 Hex: 0e
Int: 12 Hex: 0c
Int: 15 Hex: 0f
Int: 12 Hex: 0c
Int: 11 Hex: 0b
Int: 6 Hex: 06
Int: 14 Hex: 0e
Int: 4 Hex: 04
Int: 0 Hex: 00
aber dieser Teil funktioniert nicht ganz korrekt in der Funktion:Int: 200 Hex: c8
Int: 48 Hex: 30
Int: 155 Hex: 9b
Int: 253 Hex: fd
Int: 6 Hex: 06
Int: 37 Hex: 25
Int: 209 Hex: d1
Int: 114 Hex: 72
Int: 208 Hex: d0
Int: 89 Hex: 59
Int: 254 Hex: fe
Int: 158 Hex: 9e
Code: Alles auswählen
char * twoint2one ( unsigned int *zahl, unsigned char *septs)
j = countdigits(zahl);
for (i=0;i<j;i++)
Das Zählen versuche ich aktuell mit der Funktion countdigits durchzuführen.
Diese Funktion schreibt mir heraus, dass die int Variable zahl aber nur 12 Stellen groß sei, aber Sie ist 15 Stellen groß.
Das heißt, das Ergebnis der Umwandlung wird abgeschnitten und ist kaum lesbar.
auch folgender Code hilft hier nicht beim Zählen der integer "zahl" Größe:
Code: Alles auswählen
int j=0;
for (i=0;i<zahl; i*10)
{
j++
}
Sehe ich mal wieder den Fehler vor lauter Fehlern nicht

Vielen Dank!