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"