Hey Joghurt,
ich hab ein bisschen recherchiert und folgendes draus gemacht:
void setup() {
Serial.begin(9600);
char in[] = "00CCA7F6";
//To DEZ
int Zahlensystem = 16;
int length = sizeof(in)-1;
long out = 0;
char newIn[length];
for (byte t=0; t < length; 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;
if (in[t]<10) Serial.print(" ");
Serial.print(in[t], DEC); Serial.print(" * 16^");
out += in[t] * pow(Zahlensystem, length - t - 1);
Serial.print(length - t - 1, DEC);
Serial.print(" = ");
Serial.println(in[t] * pow(Zahlensystem, length - t - 1));
}
Serial.println("------------");
Serial.println(out, DEC);
}
Heraus kommt dann:
0 0 * 16^7 = 0.00
0 0 * 16^6 = 0.00
C 12 * 16^5 = 12582896.00
C 12 * 16^4 = 786431.43
A 10 * 16^3 = 40959.97
7 7 * 16^2 = 1792.00
F 15 * 16^1 = 240.00
6 6 * 16^0 = 6.00
------------
13412325
Sollwert: 13412342
Der Arduino macht wohl Rundungsgehler
