最近写Qt中的tcp网络编程,Socke连接后,接受到的数据类型是字节型,这就涉及到了大量的类型转换,在网上辗转几辄,总算有了点结果,特此跟大家分享。好了,不废话,下面细说。

方法/步骤

 
  1.  

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

  2.  

    2.首先来两个int类型的数据(或double型):

    int int_head=5;

    int int_data=10;

    这里的值是随便定的,我的是Socket接收到的数据。

  3.  

    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.  

    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.  

    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.  

    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之间转换的更多相关文章

  1. Qt中Qstring,char,int,QByteArray之间到转换(转)

    11.各种数据类型的相互转换char * 与 const char *的转换char *ch1="hello11";const char *ch2="hello22&qu ...

  2. Qt中 QString 和int,double等的转换

    Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...

  3. Qt中 QString 和int, char等的“相互”转换

    转载:http://blog.csdn.net/ei__nino/article/details/7297791 Qt中 int ,float ,double转换为QString 有两种方法 1.使用 ...

  4. Qt中 QString 和int, char等的“相互”转换,关键是QString.toLocal8Bit().data();

    Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...

  5. QT中QString 与 int float double 等类型的相互转换

    Qt中 int ,float ,double转换为QString 有两种方法 1.使用 QString::number(); 如: long a = 63; QString s = QString:: ...

  6. 为javasript中对象与json串之间转换的总结。

    jQuery.json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换.可序列化 JavaScript 对象.数值.字符串和数组到 JSON 字符串,同时可转换 JSON ...

  7. Qt中QString,int,char,QByteArray之间相互转换

    http://blog.csdn.net/ymc0329/article/details/7284514 int  转 QString int m=1; QString b; b=QString::n ...

  8. QString, string, int, char* 之间相互转换

    这三种数据类型在实际运用中经常需要互相转换,那么这里小结下它们之间的转换方法: - Qstring & string Qt中封装的类十分强大,其成员函数数量之多比STD有过之而无不及,许多程序 ...

  9. Java中几种常用数据类型之间转换的方法

    Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...

随机推荐

  1. RecyclerView 作为聊天界面,被键盘遮挡的解决办法

    最近项目在重构,使用 RecyclerView 替换了 ListView 作为 IM 的聊天界面.然后遇到了一个问题就是当键盘弹出来的时候,键盘会遮挡住 RecyclerView 的一部分,造成聊天内 ...

  2. Socket网络编程--Libev库学习(2)

    这一小节讲各个观察器(Watcher) 在libev下面watcher相当于EventHandler这么一个概念,通常里面会绑定fd回调函数以及我们需要关注的事件. 然后一旦触发事件之后会触发我们使用 ...

  3. java: 保留两位小数4种方法

    import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public c ...

  4. https://jzh.12333sh.gov.cn/jzh/

    https://jzh.12333sh.gov.cn/jzh/ https://superuser.com/questions/171917/force-a-program-to-run-withou ...

  5. 多线程消息监听容器配置[ 消费者spring-kafka配置文件]

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. django中将model转换为dict的方法

    django中将model转换为dict的方法 from django.forms.models import model_to_dict from user.model import userpro ...

  7. 通过Python的JIRA库操作JIRA

    [本文出自天外归云的博客园] 前提 需要安装jira库: pip install jira 编写脚本 例如,我想统计一下某一jira的备注里是否有如下信息,没有则给予提示: [产品需求文档地址]:ht ...

  8. java将图片转换成二进制

    package com.oumyye.图片; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; imp ...

  9. Android 开发自己的网络收音机2——电台列表(SlidingMenu侧滑栏)

    上一篇文章总体规划了这个项目的情况,今天讲讲实现电台列表.今天其实主要想讲解的是SlidingMenu,也就是我们平时说的侧滑栏,现在很多应用都有用这种UI效果.SlidingMenu侧滑栏功能实现的 ...

  10. EnumUtil

    EnumUtil.cs using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...