Qt中QString、QByteArray、int、double之间转换
最近写Qt中的tcp网络编程,Socke连接后,接受到的数据类型是字节型,这就涉及到了大量的类型转换,在网上辗转几辄,总算有了点结果,特此跟大家分享。好了,不废话,下面细说。
方法/步骤
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.QString与QByteArray之间的相互转换:
QString str_head,QString str_data;
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要首先转换为QString型,在转换为int型:
int int_head=byte_head.data().toInt(&ok,2);
int int_data=byte_data.data().toInt(&ok,2);
读者可以通过ok的值来判断转换是否成功。
END
转自:https://jingyan.baidu.com/article/a3761b2b8f4f3b1576f9aae3.html
Qt中QString、QByteArray、int、double之间转换的更多相关文章
- Qt中Qstring,char,int,QByteArray之间到转换(转)
11.各种数据类型的相互转换char * 与 const char *的转换char *ch1="hello11";const char *ch2="hello22&qu ...
- Qt中 QString 和int,double等的转换
Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...
- Qt中 QString 和int, char等的“相互”转换
转载:http://blog.csdn.net/ei__nino/article/details/7297791 Qt中 int ,float ,double转换为QString 有两种方法 1.使用 ...
- Qt中 QString 和int, char等的“相互”转换,关键是QString.toLocal8Bit().data();
Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...
- QT中QString 与 int float double 等类型的相互转换
Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...
- 为javasript中对象与json串之间转换的总结。
jQuery.json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换.可序列化 JavaScript 对象.数值.字符串和数组到 JSON 字符串,同时可转换 JSON ...
- Qt中QString,int,char,QByteArray之间相互转换
http://blog.csdn.net/ymc0329/article/details/7284514 int 转 QString int m=1; QString b; b=QString::n ...
- QString, string, int, char* 之间相互转换
这三种数据类型在实际运用中经常需要互相转换,那么这里小结下它们之间的转换方法: - Qstring & string Qt中封装的类十分强大,其成员函数数量之多比STD有过之而无不及,许多程序 ...
- Java中几种常用数据类型之间转换的方法
Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...
随机推荐
- Logcat + money 笔记
如下命令:将过滤后的日志按照指定格式输出到指定的文件中 adb logcat -v time -s Test_Tag:v > logcat_local.txt A:其中 -v time 用来指定 ...
- haproxy rpm制做
[root@c01 tmp]# fpm -s dir -t rpm -v 1.7.7 -n haproxy --before-install /tmp/haproxy_before.sh --afte ...
- 菜鸟学Java(三)——JSTL标签之核心标签
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管理格式化.XML 操作以及数 ...
- git clean 小结
删除 一些 没有 Git add 的 文件: git clean 参数 -n 显示 将要 删除的 文件 和 目录 -f 删除 文件,-df 删除 文件 和 目录 git clean -n git c ...
- 关于CAE的那点儿破事儿
CAE是计算机辅助工程的英文简写,所涵盖的范围甚是广泛.现在很多人提到CAE,总是联想到结构有限元计算,更有甚者认为有限元就是CAE.还有人把所有的工程数值计算都称作有限元.本文就这一话题,来谈谈关于 ...
- Chunk
Chunk是一系列语句,Lua执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunk. 每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用:分开 a = 1 b = a ...
- [Windows Azure] How to Monitor Cloud Services
How to Monitor Cloud Services To use this feature and other new Windows Azure capabilities, sign up ...
- 解析虚拟VMware三种网络模式的根本区别
网络模式(文字解说)VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下 ...
- 【论文笔记】多任务学习(Multi-Task Learning)
1. 前言 多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法.在机器学习领域,标准的算法理论是一次学习一个任务,也就 ...
- weblogic迁移总结
weblogic使用的数据库时DB2 1. 图形化安装weblogic和域,或者静默安装. 2. 查看环境变量env并修改,修改系统默认语言(根据实际情况) 3. 修改weblogic页面打开较慢问题 ...