我是靠谱客的博主 忐忑大叔,最近开发中收集的这篇文章主要介绍16进制数组转成10进制 qt_QT学习笔记——十进制与十六进制转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

——带符号十进制与两字节十六进制之间的转换

前言:两者转换一般用在串口通信的数据处理上,上位机接收到QByteArray类型的数据,转成QString类型,然后进行字符串截取拼接,获取数据。因此,下文两字节十六进制的数据类型是QString。十进制各种数据类型转换相对简单。下文带符号十进制数据类型是整型。

QByteArray byte = serial->readAll();

QString qstr = byte.toHex();

例子:0xFD67 和 -665

1、带符号十进制 转 两字节十六进制

int main(int argc, char *argv[]){

int num=-665;//正负皆可

QString qnum= QString::number(num,16).right(4);//裁剪字符串前面多余的f

std::cout<

return 0;

}

输出:FD67

2、两字节十六进制 转 带符号十进制

int main(int argc, char *argv[]){

int num;bool ok;

QString qnum = "FD67";

num = qnum.toInt(&ok,16);

if(!(qnum.at(0)>='0'&&qnum.at(0)<='7')){//非正数

num = num & 0x7FFF; //清除符号位

num = ~num; //反码

num = num & 0x7FFF; //清除左边多余位

num = num + 1; //加1

num = num * -1; //符号位

}

std::cout<

return 0;

}

输出:-665

最后

以上就是忐忑大叔为你收集整理的16进制数组转成10进制 qt_QT学习笔记——十进制与十六进制转换的全部内容,希望文章能够帮你解决16进制数组转成10进制 qt_QT学习笔记——十进制与十六进制转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部