【问题标题】:qDebug - How to output data in bits (binary format)qDebug - 如何以位输出数据(二进制格式)
【发布时间】:2018-08-10 23:16:26
【问题描述】:

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

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

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

Status: 1011

【问题讨论】:

  • “以二进制格式输出”是什么意思?使用您显示的代码,输出将是什么?
  • 我猜是二进制表示。
  • @bipll:你明白我的意思!
  • 所以如果status0b10101111 你希望输出是"Status: 10101111"

标签: c++ qt qt5 qdebug


【解决方案1】:

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

  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

【讨论】:

  • 如何设置输出位数?我的程序提供 8 位输出而不是 4 位
  • @jingweimo 检查最后一个方法,就是你想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 2011-03-17
  • 2016-04-27
  • 2016-03-20
  • 2010-10-17
相关资源
最近更新 更多