1. uint8_t 转 QString
uint8_t data[3]={0x80,0x80,0x80};
QString str = QString("%1").arg(data[1], 2, 16, QLatin1Char('0')); // 0x80-----> "80"
?
2.? std::String 转 16进制long int (int/uint8_t)
std::string std_str="80";
char *t_;
long int number = strtol(std_str.c_str(), &t_, 16 ); // "80" ------>0x80
温馨提示:ANSI C 规范定义了?stof()、atoi()、atol()、strtod()、strtol()、strtoul()?共6个可以将字符串转换为数字的函数,大家可以对比学习。另外在 C99 / C++11 规范中又新增了5个函数,分别是?atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介绍,请大家自行学习。
C语言strtol()函数:将字符串转换成long(长整型数)_C语言中文网 (biancheng.net)
?3. 16进制QString 转 16进制、10进制int
bool ok;
QString qstr;
int num_hex = qstr.toInt(&ok, 16); // 16进制,"80"转 0x80
int num_oct = qstr.toInt(&ok, 10); // 16进制,"80"转 80
|