当前位置:网站首页 > 编程语言 > 正文

qt字符串转16进制(qt字符串转字节数组)



      使用了Qt好一段时间了,现在在这里对字符串与16进制数的处理进行简单的总结。

      Qt中最常用的处理数据的类,QString字符串类以及QByteArray字符队列类

 

(1)有没有这样一种情况,我们想吧QString转换成QByteArray,那么我们可以

     比如:

    char * a = "I am wenon!";

     QString  b(a);

     QByteArray c = b.toAscii();  转换就成功了,还可以QByteArray c = b.toLatin1();

这两个的主要的区别是转码的协议不同。

 

(2)有时我们希望可以将QByteArray转换成QString,那么我们可以:

   比如:

     char * a = "I am wenon!";

     QByteArray  b(a);

     QString  c(b);      就可以了,同时也可以,c.append(b);  将b追加到c中。

 

(3)有时想看看QByteArray中的数据,可使用qDebug(),如

QByteArray  a("1234");

qDebug()<<a<<endl;    显示的是根据16进制数编码得到的字符串,如果a中都是可见字符,

那到这里就可以结束了,你可以看到“1234” 。如果a中存放有诸如0x01这样的数据,则我们

就需要它能以16进制数的形式打印出来,那么可以:qDebug()<<a.toHEX()<<end;  你将

看到“”     a.toHEX()实现的是将“1234”的字符串转换成了“” ,亦即,

0x 转换成字符串“”

 

(4)当然,有人肯定要用到将0x,亦即“1234”转换成0x1234,那么我们可以这样。

QByteArray a= QByteArray::fromHex("1234");  这样a中将存放着0x1234.

 

(5)最后再分享一个小经验:

如果你想在 QByteArray a 存放多个0x00 千万不可直接QByteArray a("000")  ,QByteArray a("x00x00x00"),

 以及a.append("000").因为QByteArray这个类会把以上这些当字符串处理,字符串遇0时标志结束,所以上面

的做法,什么都没存进去。那么我们可以 a.append("000", 3),或者一个一个的append('0')。

 

 

到此这篇qt字符串转16进制(qt字符串转字节数组)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 104协议报文解析工具(104协议详解)2025-06-27 08:45:10
  • vbf文件是什么(vbf文件用什么打开)2025-06-27 08:45:10
  • 儿童多动症行为干预训练方法(儿童多动症行为干预训练方法有哪些)2025-06-27 08:45:10
  • 速排小蚂蚁手机版(速排小蚂蚁编辑器官网)2025-06-27 08:45:10
  • 蓝牙地址不可用是怎么回事(蓝牙地址不可用是什么意思)2025-06-27 08:45:10
  • 抽奖小程序制作免费(抽奖小程序制作流程)2025-06-27 08:45:10
  • 创维e900s短接(创维e900s短接刷机为什么连不上网络)2025-06-27 08:45:10
  • jflash(jflash读取单片机程序)2025-06-27 08:45:10
  • 圈一圈算一算怎么圈图(圈一圈算一算怎么圈图24+8)2025-06-27 08:45:10
  • u盘做成启动盘后怎么恢复原来的文件(u盘做了启动盘怎么恢复)2025-06-27 08:45:10
  • 全屏图片