如何将 const char* 转换为 uint16_t 八进制 (C/C++)
How to convert const char* to uint16_t octal (C/C++)
我需要将前导零的值转换为八进制。因为12(14八进制)和012(10八进制)不同
我要调用的函数需要一个 uint16_t 类型的变量,要转换的值是动态接收的,可以存储在 String 或 const char* 中。
String node = "012"; // received dynamically
const char* node = '012'; // received dynamically
我需要的是:
uint16_t n = node;
函数:
begin(uint8_t _channel, uint16_t _node_address )
begin(90, n);
unsigned strToInt(const char *str, int base)
{
const char digits[] = "01234567890ABCDEF";
unsigned result = 0;
while(*str)
{
result *= base;
result += strchr(digits, *str++) - digits;
}
return result;
}
我需要将前导零的值转换为八进制。因为12(14八进制)和012(10八进制)不同
我要调用的函数需要一个 uint16_t 类型的变量,要转换的值是动态接收的,可以存储在 String 或 const char* 中。
String node = "012"; // received dynamically
const char* node = '012'; // received dynamically
我需要的是:
uint16_t n = node;
函数:
begin(uint8_t _channel, uint16_t _node_address )
begin(90, n);
unsigned strToInt(const char *str, int base)
{
const char digits[] = "01234567890ABCDEF";
unsigned result = 0;
while(*str)
{
result *= base;
result += strchr(digits, *str++) - digits;
}
return result;
}