Qt int 十六进制数组转化为QByteArray

说明:

在自定义通信协议的时候需要用到十六进制。定义一个十六进制整形数组,并将该整形数组一个个

赋值给QByteArray,它会自动进行转换成字符类型。

例如

 int array[]={0x20,0x35,0x45,0x68,0x88};
    arr.resize(sizeof(array)/sizeof(array[1]));
    for(int i = 0;i < (sizeof(array)/sizeof(array[1]));i++)
    {
        arr[i] = array[i];
        qDebug() << array[i];
        qDebug() << arr[i];
    }

 可以清楚看到已经变成ASCII字符。如何将字符类型转换成我想要的十六进制呢?我是这样做的:

QByteArray ret = arr.toHex();

不过这样的缺点就是空间扩大一倍,原先arr5个字节大小,ret变成10个字节大小。最终转换是一个int类型十六进制转化成两个QByteArray字节空间。array[0] =0x20  =>   ret[0] = '2',ret[1] = '0'.

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值