gpt4 book ai didi

arduino - 在arduino中将十六进制字符串转换为十进制

转载 作者:行者123 更新时间:2023-12-02 21:14:01 24 4
gpt4 key购买 nike

我有一个像这样的十六进制字符串:“0005607947”并且想将其转换为十进制数字,我在 this site 上测试它它正确地转换为十进制数,答案是:“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);

最佳答案

删除所有代码,只使用标准库中的“strtol”。

 #include <stdlib.h>
long strtol (const char *__nptr, char **__endptr, int __base)

供您使用:

long decimal_answer = strtol("0005607947", NULL, 16);

关于arduino - 在arduino中将十六进制字符串转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31830143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com