Qt简单编程-显示十六进制与二进制(1)

从C来的,要显示数值,第一个是用sprintf,没错我也一直用它,直到今天想显示二进制。搜索未果,于是按F1。
于是看到一条警告:
Warning: We do not recommend using QString::sprintf() in new Qt code. Instead, consider using QTextStream or arg(), both of which support Unicode strings seamlessly and are type-safe. Here’s an example that uses QTextStream:
意思是Qt叫我不要再用sprintf了。
于时再看它说的QTextStream与arg(),要显示不同进制,应使用arg()。
arg()不是一个函数,而是一大堆,从第二个同名函数开始,就有一句话:

This function overloads arg().
在别的地方看到这句话“它有20个重载“一直不明白是什么意思,现在好像有点知道。
不管这些,反正我只是想用它而已。
我感兴趣的是这个函数。

QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char( ' ' )) const

帮助里有例子,也能搜索出一堆引用这个例子的网页,我简单地试下。

QString info = QString("0x%1").arg(0x55,0,16);

上面的代码得出一个字符串”0x55“,至此就是Qt说的用arg()代替sprintf。
但我有更高的要求,要显示二进制。按”所有需要的都在F1“原则,再看帮助,有这句话。

The a argument is expressed in base base, which is 10 by default and must be between 2 and 36.

有点小激动,二话没说,试一下。

QString info = QString("0b%1").arg(0x55,0,2);

得出的结果是。

0b1010101

有点不对,最好能显示”01010101“,arg()还有两参考未用呢,再看帮助。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值