找回密码
 立即注册
收起左侧

如何在unsigned char * 与QByteArray 之间转换?

1
回复
21995
查看
[复制链接]

尚未签到

来源: 2015-4-21 12:52:45 显示全部楼层 |阅读模式
5Qter豆
因为数据加密使用的加解密模块都是unsigned char 为接口的。有没有什么好的方法在unsigned char * 与 QByteArray 之间转换呢?
求一个实例。
而且要注意 unsigned char 与char 之间转换会产生数据改变,影响解密内容。

最佳答案

查看完整内容

QByteArray 转换为 char * char *ch;//不要定义成ch[n]; QByteArray byte; ch = byte.data(); char * 转换为 QByteArray char *ch; QByteArray byte; byte = QByteArray(ch); 先转成char,然后再转成unsigned char.我觉得应该是这样。 char[/backcolor]与[/backcolor]unsigned char[/backcolor]没有什么不同,都是一个字[/backcolor]节[/backcolor],唯一的区别是,[/backcolor]char[/backcolor]的最高位[/backcolor]为[/backc ...
回复

使用道具 举报

累计签到:344 天
连续签到:1 天
2015-4-21 12:52:46 显示全部楼层
本帖最后由 cai901022 于 2015-4-21 13:17 编辑

QByteArray 转换为 char *
char *ch;//不要定义成ch[n];
QByteArray byte;
ch = byte.data();

char * 转换为  QByteArray
char *ch;
QByteArray byte;
byte = QByteArray(ch);

先转成char,然后再转成unsigned char.我觉得应该是这样。

charunsigned char没有什么不同,都是一个字,唯一的区别是,char的最高位符号位,因此char能表示-128~127, unsigned char没有符号位,因此能表示0~255.所以你根据这个理解来转unsigned char就不会出错了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了