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

jin*_*imo 6 c++ qt qdebug qt5

qDebug()可以以二进制格式输出数据吗?
例如,我想检查一些状态变化:

unsigned char status;
...
qDebug() << "Status: " << status;
Run Code Online (Sandbox Code Playgroud)

我想以二进制格式生成输出,如:

Status: 1011
Run Code Online (Sandbox Code Playgroud)

eyl*_*esc 11

如果要以二进制打印,可以使用:

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

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

Output:
"Status: 1011"
Run Code Online (Sandbox Code Playgroud)
  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
Run Code Online (Sandbox Code Playgroud)

  • @jingweimo检查最后一个方法,那就是你想要的方法. (3认同)