脚本宝典收集整理的这篇文章主要介绍了QT学习笔记——十进制与十六进制转换,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
——带符号十进制与两字节十六进制之间的转换
前言:两者转换一般用在串口通信的数据处理上,上位机接收到QByteArray类型的数据,转成QString类型,然后进行字符串截取拼接,获取数据。因此,下文两字节十六进制的数据类型是QString。十进制各种数据类型转换相对简单。下文带符号十进制数据类型是整型。
QByteArray byte = serial->readAll(); QString qstr = byte.toHex();
例子:0xFD67 和 -665
int main(int argc, char *argv[]){ int num=-665;//正负皆可 QString qnum= QString::number(num,16).right(4);//裁剪字符串前面多余的f std::cout<<qnum.toUpPEr().toStdString()<<std::endl; return 0; }
输出:FD67
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<<num<<std::endl; return 0; }
作者:Cyfeng链接:https://www.jianshu.COM/p/938bd6393405来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以上是脚本宝典为你收集整理的QT学习笔记——十进制与十六进制转换全部内容,希望文章能够帮你解决QT学习笔记——十进制与十六进制转换所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。