преобразовать шестнадцатеричную строку в десятичную в Arduino
У меня есть шестнадцатеричная строка, например: «0005607947», и я хочу преобразовать ее в десятичное число, я проверяю ееэтот сайт и он правильно преобразуется в десятичное число и ответ: «90208583», но когда я использую этот код, я получаю неправильное значение! где мой код неправильный или был какой-то новый код для этой проблемы?
long int decimal_answer = getDEC("0005607947") ;
long int getDEC(String str110) {
long int ID = 0 ;
int len = str110.length() ;
char buff[len] ;
int power = 0 ;
for(int i = 0 ; i <len ; i++) { buff[i] = str110.charAt(i); }
for(int i = (len-1) ; i >=0 ; i--) {
int num = buff[i] - '0' ;
ID = ID + num * pow(16 , power) ;
power = power + 1 ;
}
Serial.println(String(ID , DEC));
return ID ;
}
// thanks , i also use this but , get error : invalid conversion from 'void*' to 'char**' [-fpermissive]
unsigned int SiZe = sizeof(F_value) ;
char charBuf[SiZe];
F_value.toCharArray(charBuf , SiZe);
long decimal_answer = strtol(charBuf , NULL , 16);
Serial.println(decimal_answer , DEC);