QByteArray和十六进制的QString(char*)相互转换
#include <QCoreApplication>
#include <QDebug>
#include <QDataStream> QByteArray HexStringToByteArray(QString HexString)
{
bool ok;
QByteArray ret;
HexString = HexString.trimmed();
HexString = HexString.simplified();
QStringList sl = HexString.split(" "); foreach (QString s, sl) {
if(!s.isEmpty()) {
char c = s.toInt(&ok,)&0xFF;
if(ok){
ret.append(c);
}else{
qDebug()<<"非法的16进制字符:"<<s;
}
}
}
return ret;
} QString ByteArrayToHexString(QByteArray &ba)
{
QDataStream out(&ba,QIODevice::ReadWrite); //将str的数据 读到out里面去
QString buf;
while(!out.atEnd())
{
qint8 outChar = ;
out >> outChar; //每次一个字节的填充到 outchar
QString str = QString("%1").arg(outChar&0xFF,,,QLatin1Char('')).toUpper() + QString(" "); //2 字符宽度
buf += str;
}
return buf;
} int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
char cmd[] = {0x40, 0x00, 0x00, 0x01, 0x00, 0x41, 0x0A};
char* cmdString = "40 00 00 01 00 41 0a";
QByteArray cmdBA = HexStringToByteArray(cmdString);
qDebug()<<ByteArrayToHexString(cmdBA); return a.exec();
}
QByteArray和十六进制的QString(char*)相互转换的更多相关文章
- Qt的QString,QByteArray,char *相互转换
1.QString转换为QByteArray QString str = "; QByteArray byte = str.toUtf8(); // 转换为Utf8格式 byte.toLoc ...
- QString, Std::string, char *相互转换
Qt 库中对字符串类型进行了封装,QString 类提供了所有字符串操作方法,给开发带来了便利. 由于第三方库的类型基本上都是标准的类型,即使用std::string或char *来表示字符 (串) ...
- Qt中Qstring,char,int,QByteArray之间到转换(转)
11.各种数据类型的相互转换char * 与 const char *的转换char *ch1="hello11";const char *ch2="hello22&qu ...
- CString, QString, char*之间的转换(包括VC编译开关)
传给未分配内存的const char* (LPCTSTR)指针. CString cstr(asdd); const char* ch = (LPCTSTR)cstr; ch指向的地址和cstr相同. ...
- string、const char*、 char* 、char[]相互转换(待整理)
string.const char*. char* .char[]相互转换(全) https://blog.csdn.net/rongrongyaofeiqi/article/details/5244 ...
- C++-Qt【5】-QT的QString,char*,QByteArray转化以及中文乱码的问题
引用:http://blog.sina.com.cn/s/blog_a7e2c7490101oatt.html QTextCodec *codec = QTextCodec::codecForName ...
- Unicode字符集下CString与char *相互转换
经常遇到CString转换char*时只返回第一个字符.原因是因为在Unicode字符集下CString会以Unicode的形式来保存数据,强制类型转换只会返回第一个字符.所以直接转换在基于MBCS的 ...
- 在iOS开发中,我们会遇到十六进制和字符串之间相互转换,话不多说,直接上代码:
//将十六进制的字符串转换成NSString则可使用如下方式: + (NSString *)convertHexStrToString:(NSString *)str { if (!str || [s ...
- java中String\十六进制String\byte[]之间相互转换函数
java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */ pu ...
随机推荐
- 实验1 C语言环境使用和数据类型 运算符 表达式
Part1 经过练习我发现自己经长会漏掉分号,有时输入法不同,打出来的括号前后不同,还有转义字符的使用,大小写转化之间的表达.还有打字速度比较慢. Part2 #include<stdio.h& ...
- Sqlachemy的警告SAWarning: The IN-predicate on "sns_object.BIZ_ID" was invoked with an empty sequence. This results in a contradiction, which nonetheless can be expensive to evaluate.
我在使用db_session.query,查询的时候idlist是个空值时候,执行下面的语句就会出现警告.其中后面delete(synchronize_session=False)是删除前面的一堆查询 ...
- (转载)解决vmware上安装ubuntu不能联网的问题
在vmware中安装Ubuntu之后,我们希望基本的功能如上网.传输文件等功能都是可用的,但是经常遇到不能上网的情况.使用笔记本时,我们经常希望能通过无线网卡上网,但是在做嵌入式开发时,我们还希望虚拟 ...
- Openstack API 类型 & REST 风格
目录 目录 Openstack 提供了三种操作方式 Web界面 CIL 指令行 RESTful API REST 风格 RESTFul风格的API设计 基于HTTP协议的RESTful API Ope ...
- 使用Xftp连接Centos 6.6服务器详细图文教程
这篇文章主要介绍了使用Xftp连接Centos 6.6服务器详细图文教程,本文用详细的图文说明讲解了连接服务器和操作服务器的步骤,适合新手,需要的朋友可以参考下 一,打开Xftp软件(下载地址:Xma ...
- Maven Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
因此:maven中,配置文件的读取应有下列红字两部分,缺一不可. 不是maven项目时,可以都不写........ <context-param> <param-name>co ...
- CF560补题
D题:用来对比的vector<long long> b不能被初始化大小成n,因为a里面有n个因子,但是这是可能存在遗漏情况的.如果刚好是遇到实际因子远多于n,那么就会在运行过程中出错. 还 ...
- upc组队赛14 Communication【并查集+floyd /Tarjan】
Communication 题目描述 The Ministry of Communication has an extremely wonderful message system, designed ...
- C++中逻辑操作符的重载分析
1,逻辑运算符的原生语义: 1,操作数只有两种值(true 和 false): 1,C 语言中只有非 0 和 0: 2,逻辑表达式不用完全计算就能确定最终值: 1,短路规则: 3,最终结果只能是 tr ...
- Comet OJ - Contest #12
B 整个表格其实是一些联通块,取反操作不能跨连通块.所以直接统计一下每个连通块内数字不对的个数是不是偶数即可 #include<iostream> #include<cstring& ...