C++和Qt数字转字符串

2进制,8进制,10进制,16进制无保留地转换字符串。

常用转换

  • 使用QString的number接口下列设置会被转换为10进制的字符串,显然不是我们想要的。
QString::number(0b111); // "7"
QString::number(0123);  // "83"
QString::number(123);   // "123"
QString::number(0x123); // "291"

保留进制的转换

  • number接口添加进制参数让它转换具备进制的字符串,但看起来像10进制的字符串,感觉也不是自己想要的。
QString::number(0b111, 2);  // "111"
QString::number(0123, 8);   // "123"
QString::number(123, 10);   // "123"
QString::number(0x123, 16); // "123"

更彻底的转换

  • #在宏中的作用为将#后的内容转换为字符串
  • 这样带进制标识的转换看起来好多了。
#define TO_STR(n) #n
TO_STR(0b111); // "0b111"
TO_STR(0123);  // "0123"
TO_STR(123);   // "123"
TO_STR(0x123); // "0x123"

作者:

喜欢围棋和编程。

 
发布于 分类 编程标签

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注