Qt字符与16进制数之间的爱恨情仇
来源:互联网 发布:网络流行歌曲2009 编辑:程序博客网 时间:2024/06/06 02:00
使用了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; 你将
看到“31323334” a.toHEX()实现的是将“1234”的字符串转换成了“31323334” ,亦即,
0x31323334 转换成字符串“31323334”
(4)当然,有人肯定要用到将0x31323334,亦即“1234”转换成0x1234,那么我们可以这样。
QByteArray a= QByteArray::fromHex("1234"); 这样a中将存放着0x1234.
(5)最后再分享一个小经验:
如果你想在 QByteArray a 存放多个0x00 千万不可直接QByteArray a("\0\0\0") ,QByteArray a("\x00\x00\x00"),
以及a.append("\0\0\0").因为QByteArray这个类会把以上这些当字符串处理,字符串遇\0时标志结束,所以上面
的做法,什么都没存进去。那么我们可以 a.append("\0\0\0", 3),或者一个一个的append('\0')。
- Qt字符与16进制数之间的爱恨情仇
- QT 与 QT creator 和 QT SDK 之间的区别
- QT-x11与qtopia之间的关系
- QT QString与char *之间的转换
- QT QString与char *之间的转换 .
- Qt string与QString之间的转换
- Qt string与QString之间的转换
- Qt 与python之间的通信(一)
- 字符与数字之间的转化
- 字符与数字之间的转换
- 整型与字符型之间的转换
- Python数字与字符之间的转换
- 字符串之间相互转换 字符与数值之间的转换
- 宽字符与ANSI字符之间的相互转换
- linux 宽字符与多字节字符之间的转换
- 宽字符与ANSI字符之间的相互转换
- 截取//与/之间字符
- QT的QImage 与 Opencv的Mat 之间的转换
- 改善C++ 程序的150个建议学习之建议17:提防隐式转换带来的麻烦
- SQL Server查询优化器:最佳执行计划
- libusb-win32
- JSTL以及EL表达式
- ObjectInputStream类和ObjectInputStream类的使用
- Qt字符与16进制数之间的爱恨情仇
- 今天使用了WPS for linux,爽。
- XML加载兼容chrome写法
- sql编写规范
- LeetCode Question Difficulty Distribution : Sheet1
- JAVA和PHP通用的加解密整理版(AES,DES…)
- windows下boost怎样安装与使用说明
- 第1节 Linux的内存管理概述
- 解决github push错误The requested URL returned error: 403 Forbidden while accessing