Qt中QString、QByteArray、int、double之间转换

 时间:2024-10-21 10:35:47

1、打开Qt Creator,我的是2.8.1版本。新建工程,应该包含了基本类型的头文件,这里就不详细说了,因为Qt中的头文件与类名是一样的。

2、首先来两个int类型的数据(或double型):int int_head=5;int int_data=10;这里的值是随便定的,我的是Socket接收到的数据。

3、首先将int型(double型)转换为QString型:QString str_head=QString::number(head,2);QString str_data=QString::number(data,2);number方法的第一个参数就是第2步骤的int类型数据(或double型);第二个参数表示进制数,如果你想转换为二进制字符串,参数值就为2,十进制就是10,其他进制同理。上述两个语句结果为:Head="101"; Data="1010";

4、将int型(double型)转换为QByteArray型:QByteArray byte_head,byte_data;memcpy(芟鲠阻缒byte_head.data(),&int_head,sizeof(int_head));memcpy(byte_data.data(),&int_data,sizeof(int_data));这里使用内存复制函数memcpy将int类型复制到QByteArray字节类型//如果是将两个数据复制到一个字节变量中,可以这样写:QByteArray byte;byte.resize(2*sizeof(int));memcpy(byte.data(),&int_head,sizeof(int_head));memcpy(byte.data(),&int_data,sizeof(int_data));也就是改了一下byte的大小。

5、QStr坡纠课柩ing与QByteArray之间的相互转换:QString str_head,QString str_d锾攒揉敫ata;QByteArray byte_head,byte_data;//QByteArray转换为QString语句非常简单:str_head=QByteArray(byte_head);str_data=QByteArray(byte_data);或者是这样:str_head=byte_head.data();str_data=byte_data.data();//同理,QString转换为QByteArray字节型:byte_head=QString(str_head);byte_data=QString(str_data);或者是这样:byte_head=str_head.toLatin1();byte_data=str_data.toLatin1();当然,前提是必须先给要转换变量进行赋值!

6、QString、QByteArray转换为int型(double型):bool ok;int int_head=str_head.toInt(&ok,2);int int_data=str_data.toInt(&ok,2);//QByteArray要首先转换为QStrin型,在转换为int型:int int_head=byte_head.data().toInt(&ok,2);int int_data=byte_data.data().toInt(&ok,2);读者可以通过ok的值来判断转换是否成功。

  • 决战僵尸的AR游戏有哪些技巧?
  • 怎样做茄子菜
  • 初中毕业学什么技术比较有前途?
  • 男士出现问题脱肛怎么办?
  • 苍岩山景区实用旅游攻略
  • 热门搜索
    护士节手抄报 手抄报花边素材 获奖手抄报 节约用水的手抄报内容 环保手抄报的内容 手抄报教师节 中秋手抄报图片 手抄报感恩老师 关于理想的手抄报 二年级最简单中秋节手抄报