码迷,mamicode.com
首页 > 其他好文 > 详细

QT进制之间的相互转换

时间:2018-10-01 23:10:48      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:bsp   back   二进制   printf   log   des   work   hex   signed   

本篇是对作者本人在工作经常遇到的进制转换进行总结,,编程环境为QT5.7
int类型转16进制的字符串
两种方式:
第一种:

1 int m_networkNo = 6300;
2 Log::debug(QString::number(m_networkNo, 16));//这里的log::debug是打印日志(自定义),可换成qDebug

第二种
QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ‘ ‘ )) const
fieldWidth:字符串指定长度
fillChar:不够长度用这个字符进行填充

1 int m_networkNo = 6300;
2 Log::debug(QString("%1").arg(m_networkNo, 6, 16, QLatin1Char(0)));

QString 16进制转二进制的char*

 1 char*   myHexToBin(QString inStr, char *dest, int len)
 2 {
 3 int size=inStr.length();
 4 for (int i=0,j=0;i<size && j<len;i+=2,j++)
 5 {
 6 unsigned char tempC,bcd;
 7 tempC=inStr.at(i).toLatin1();
 8 if (tempC>=a && tempC<=f) tempC=tempC-a+A;
 9 bcd = ( tempC>=A? tempC - A+ 0x0a:tempC - 0) << 4;
10 tempC=inStr.at(i+1).toLatin1();
11 if (tempC>=a && tempC<=f) tempC=tempC-a+A;
12 bcd += tempC>=A? tempC - A+ 0x0a:tempC - 0;
13 sprintf(dest+j, "%c",bcd);
14 }
15 return dest;
16 }

 

QT进制之间的相互转换

标签:bsp   back   二进制   printf   log   des   work   hex   signed   

原文地址:https://www.cnblogs.com/huanyinglvtuan/p/9735973.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!