Qt、串口助手中字符串和十六进制字符串的转换

Qt串口助手传输数据介绍

十六进制的数据在串口通信时可以在有限的协议长度内存储更多的信息,因此在串口通信中经常可见到十六 进制的出现。

在收发数据时用户可以选择16进制发送和16进制显示,因此需要将普通字符串转为16进制字符串,同时 也需要将16进制字符串转为普通字符串。

Qt将字符串转为16进制字符串

QString strToHexStr(const QString &str) {
    QByteArray ba = str.toLocal8Bit();
    QString hexStr = ba.toHex(' ');
    return hexStr.toUpper(); // 转换为大写并返回
}

Qt将16进制字符串转普通字符串

QString hexStrToStr(const QString &hexStr)
{
    QString s1 = hexStr;
    s1.remove(QRegExp("\\s"));  // 去除空格
    QByteArray ba = QByteArray::fromHex(s1.toLocal8Bit());
    return QString::fromLocal8Bit(ba);
}

注意:该转换中英文混合的字符串也适用。

测试

// 字符串转16进制
QString str1 = "您好helloworld哈哈";
QString res1 = strToHexStr(str1);
qDebug() << res1;


// 十六进制字符串转字符串
QString str2 = "C4 FA BA C3 68 65 6C 6C 6F 77 6F 72 6C 64 B9 FE B9 FE ";
QString res2 = hexStrToStr(str2);
qDebug() << res2;

最近更新

  1. TCP协议是安全的吗?

    2024-04-08 11:06:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-08 11:06:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-08 11:06:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-08 11:06:03       20 阅读

热门阅读

  1. springboot+websocket+微信小程序实现评论区功能

    2024-04-08 11:06:03       17 阅读
  2. 自动化脚本代码appium+pytest+adb

    2024-04-08 11:06:03       21 阅读
  3. 【flask快速上手(二)】

    2024-04-08 11:06:03       19 阅读
  4. Windows DLL(动态链接库)的用处

    2024-04-08 11:06:03       19 阅读
  5. Spring Boot中整合Redis

    2024-04-08 11:06:03       16 阅读