Qt 将字符串转成16进制显示

最近项目用到了需要将字符串转换成16进制显示。这玩意折腾了一上午。

首先,数据块内容

struct UserData
{
    char Head[3] = {'X','J','J'};
    char Flag = '1'-'0x30';
    char X_Position = '1'-'0x30';
    char Y_Position = '@'-'0x30';
    char Sum = Head[0] + Head[1] + Head[2] + Flag + X_Position + Y_Position;
}userdata;

我需要将这个结构体通过网口发送出去,然后并且在界面显示发送的数据内容,发送是简单了,但是显示就麻烦了。
我做了一下工作,可能存在不必要的内容。

第一步,拼接字符串,并将字符串转成成QString

char temp[7];
temp[0] = userdata.Head[0];
temp[1] = userdata.Head[1];
temp[2] = userdata.Head[2];
temp[3] = userdata.Flag;
temp[4] = userdata.X_Position;
temp[5] = userdata.Y_Position;
temp[6] = userdata.Sum;
QString tt = temp;

第二步,将QString转成16进制的QByteArray,

QByteArray temp1 = tt.toLatin1().toHex();

第三步,添加空格

QByteArray temp2;
for(int i = 0; i < temp1.length()/2;i++)
{
    temp2 += temp1.mid(i*2,2) + " ";
}

以上内容完成后,将可以将字符串一16进制的形式显示在界面上了,不过我目前这个代码里面还存在一个问题,组后多出一组数据来,不知道哪里来的。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamLife.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值