qDebug - 如何以二进制格式输出数据

7
可以使用qDebug()输出二进制格式的数据吗?例如,我想检查一些状态变化:
unsigned char status;
...
qDebug() << "Status: " << status;

我希望生成二进制格式的输出,类似于以下内容:
Status: 1011

你说的“以二进制格式输出”是什么意思?根据你展示的代码,输出会是什么? - Some programmer dude
我的猜测是二进制表示。 - bipll
@bipll:你明白我的意思了! - jwm
所以如果 status0b10101111,你想要输出为 "状态:10101111" - Some programmer dude
1
可能是如何以二进制输出int?的重复问题。 - bipll
1个回答

14

如果你想以二进制方式打印,可以使用以下方法:

  1. bin
unsigned char status = 11;
qDebug() << "Status:" << bin << status;

Output:
"Status: 1011"
  1. QString::number()
unsigned char status = 11;
qDebug() << "Status:" << QString::number(status, 2);

Output:
"Status: 1011"
  1. QString::arg()
unsigned char status = 11;

// to print as string with 8 characters padded with '0'
qDebug() << "Status1:" << QString("%1").arg(status, 8, 2, QChar('0'));

// use noquote() if you do not want to print the quotes
qDebug().noquote() << "Status2:" << QString("%1").arg(status, 8, 2, QChar('0'));

Output:
Status1: "00001011"
Status2: 00001011

1
如何设置输出位数?我的程序输出8位而不是4位。 - jwm
3
请查看最后一个方法,这就是你想要的。 - eyllanesc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接