请教如何把1个QString数字字符串转换成16进制的QString数字字符串
刚开始工作接了公司一个项目,一个报文处理工具,需求是把报文附带着中文显示出来,所以想到用QString来实现,效果如下EB 90 EB 90 EB(报文头) 90 01 61
报文是以char*存储的,所以我先完成从char*到QString的转换,代码如下
char* m_pData;
memcpy(m_pData, pData, nLength);
m_nLength = nLength;
//char存储到QString里
for (int i = 0; i < m_nLength; i++)
{
bool ok;
QString m_tmp = QString::number(*m_pData,16);
//接收字符为0x00,变字符串为00
if (m_tmp.toInt(&ok,10) == 0)
{
m_tmp = ("00");
}
//接收字符为0x04,0x07等,补足0
if ((m_tmp.toInt(&ok,10) < 10) && (m_tmp.toInt(&ok,10) > 0))
{
m_tmp = m_tmp.insert(0, "0");
}
m_exchange.append(m_tmp);
m_exchange.append(" ");
m_pData = m_pData + 1;
m_tmp.clear();
}
char* m_pData;
memcpy(m_pData, pData, nLength);
QString data("104");
qDebug()<<data.toInt(nullptr, 16);