7
votes

Can qDebug() output the data in binary format?
For example, I want to check some status variation:

unsigned char status;
...
qDebug() << "Status: " << status;

I want to generate output in a binary format, something like:

Status: 1011
1
What do you mean "output in a binary format"? With the code you show, what would the output be? - Some programmer dude
My guess is binary representation. - bipll
@bipll: you got my point! - jingweimo
So if status is 0b10101111 you want the output to be "Status: 10101111"? - Some programmer dude
Possible duplicate of how to output an int in binary? - bipll

1 Answers

14
votes

If you want to print in binary you can use:

  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