admin管理员组文章数量:1794759
QT中几种进制转换的方法
QT中几种进制转换的方法 十进制转为其它进制 方法一
函数原型
QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const返回此字符串的副本,其中编号最低的位置标记替换为字符串a,即%1,%2,…, % 99。
fieldWidth指定参数a应占用的最小空间量。如果a需要的空间小于fieldWidth,则使用fillChar字符填充到fieldWidth。正的fieldWidth生成右对齐的文本。负fieldWidth生成左对齐的文本。
代码示例
int num = 11; QString str = QString("%1").arg(num, 0, 10);//11 十进制 str = QString("%1").arg(num, 0, 16);//b 十六进制 str = QString("%1").arg(num, 0, 2);//1011 二进制 str = QString("%1").arg(num, 0, 8);//13 八进制 方法二函数原型
[static] QString QString::number(long n, int base = 10)根据指定的基数返回与数字n等价的字符串。
基数默认为10,必须在2到36之间。对于底数不是10的情况,n被视为无符号整数。
格式总是使用QLocale::C,即English/UnitedStates。要获得数字的本地化字符串表示形式,请使用带有适当区域设置的QLocale::toString()。
代码示例
str = QString::number(num, 10);//11 十进制 str = QString::number(num, 16); //b 十六进制 str = QString::number(num, 16).toUpper(); //B 十六进制结果字母转大写 str = QString::number(num, 2);//1011 二进制 str = QString::number(num, 8); //13 八进制 方法三函数原型
QString &QString::setNum(int n, int base = 10)将字符串设置为指定进制的n的打印值,并返回对该字符串的引用。
基数默认为10,必须在2到36之间。对于底数不是10的情况,n被视为无符号整数。
代码示例
str = str.setNum(num,10);//11 十进制 str = str.setNum(num,16);//b 十六进制 str = str.setNum(num,2);//1011 二进制 str = str.setNum(num,8); //13 八进制 int类型和QString类型之间的互相转换 int num = 11; QString str = QString("%1").arg(num); //int转QString int n = str.toInt();//QString转int 其他进制转10进制函数原型
uint QString::toUInt(bool *ok = Q_NULLPTR, int base = 10) const返回使用base base转换为unsigned int的字符串,默认为10,必须在2到36之间,或者0之间。如果转换失败,则返回0。
如果发生转换错误,ok被设置为false;否则ok设置为true。
如果base为0,则使用C语言约定:如果字符串以“0x”开头,则使用进制16;如果字符串以“0”开头,则使用8进制;否则,以10为基数。
字符串转换总是在’C’地区发生。使用QLocale::toUInt()进行语言环境相关转换
代码示例
16进制转10进制
QString str = "b"; bool ok; int hex = str.toULong(&ok, 16); //118进制转10进制
QString str = "13"; bool ok; int hex = str.toULong(&ok, 8); //112进制转10进制
QString str = "1011"; bool ok; int hex = str.toULong(&ok, 2); //11谢谢点赞、收藏
版权声明:本文标题:QT中几种进制转换的方法 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686574661a83506.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论