Hexadezimalen String in DEC Integer konvertieren

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