So ähnlich hatte ich das schon gemacht:
void setup(){
Serial.begin(9600);
char in[] = "00CCA7F6";
unsigned int out = 0;
for (byte t=0; t<8; t++) {
Serial.print(in[t]);
Serial.print(": ");
if (in[t]>='0' && in[t]<='9')
in[t] -= '0';
if (in[t]>='A' && in[t]<='F')
in[t] -= 'A'-10;
int j=0;
if (in[t] >= 10)
j=1;
//for (j; j<t+1; j++){
// Serial.print(" ");
//}
Serial.print(in[t], DEC);
Serial.print(" ");
if (in[t]<10) Serial.print(" ");
Serial.println(out);
//Serial.print("neu:");
//Serial.println(out);
out = out*16 + in[t];
}
Serial.println(out);
}
0: 0 0
0: 0 0
C: 12 0
C: 12 12
A: 10 204
7: 7 3274
F: 15 52391
6: 6 51839
42998
Komisch, dass der Wert am Ende kleiner wird