Hallo,
ich versuche mich gerade in der µC programmierung und bin auf ein
Problem gestoßen, welches ich mir nicht erklären kann.
Ich habe einen Array der größe 8 des types uint8_t und möchte diesen in
einen Array aus chars umwandeln.
Mein versuch sieht wie folgt aus:
1 | char * addressToString(uint8_t * deviceAddress) {
|
2 |
|
3 | char * acc = (char *) malloc(16 * sizeof(char));
|
4 |
|
5 | for(int i=0; i<16;) {
|
6 |
|
7 | acc[i++] = intToChar(deviceAddress[i]/16);
|
8 |
|
9 | acc[i++] = intToChar(deviceAddress[i]%16);
|
10 |
|
11 | }
|
12 |
|
13 | return acc;
|
14 |
|
15 | }
|
16 |
|
17 | char intToChar(int i) {
|
18 |
|
19 | if(i<=9) return '0'+i;
|
20 |
|
21 | else return 'A'+i-10;
|
22 |
|
23 | }
|
Dann habe ich versucht diesen array rein zu schicken
{ 0x28, 0x3E, 0x59, 0x58, 0x4, 0x0, 0x0, 0xDC }
mit der Erwartung
{2,8,3,E,5,9,5,8,0,4,0,0,0,0,D,C}
Raus zu bekommen jedoch bekam ich
{2,E,5,8,0,0,0,C,0,0,0,0,1,2,4,1}
Seht ihr was ich falsch gemacht habe?
Danke im voraus