我不明白什麼是accepted answer後不清楚。
如果在您的情況下不起作用,那麼其他事情就會出錯。 (這是其他評論家已經告訴你的。)
我怎麼能說服你呢?
我最後的(絕望)嘗試:一個(不那麼)MCVE:
#include <QDebug>
#include <QString>
int main()
{
QString samples[] = {
"0x0", "0x1", "0x1e", "0x11", "0x1111", "0x111e", "0x111f"
};
enum { n = sizeof samples/sizeof *samples };
for (int i = 0; i < n; ++i) {
const QString &hexString = samples[i];
qDebug() << "Formatted binary output of " << hexString;
for (int j = 1; j < 40; j += 8) {
bool ok;
qDebug()
<< QString("%1: %2")
.arg(j, 2)
.arg(hexString.toULongLong(&ok, 16), j, 2, QChar('0'));
}
}
// done
return 0;
}
編譯和測試:
Formatted binary output of "0x0"
" 1: 0"
" 9: 000000000"
"17: 00000000000000000"
"25: 0000000000000000000000000"
"33: 000000000000000000000000000000000"
Formatted binary output of "0x1"
" 1: 1"
" 9: 000000001"
"17: 00000000000000001"
"25: 0000000000000000000000001"
"33: 000000000000000000000000000000001"
Formatted binary output of "0x1e"
" 1: 11110"
" 9: 000011110"
"17: 00000000000011110"
"25: 0000000000000000000011110"
"33: 000000000000000000000000000011110"
Formatted binary output of "0x11"
" 1: 10001"
" 9: 000010001"
"17: 00000000000010001"
"25: 0000000000000000000010001"
"33: 000000000000000000000000000010001"
Formatted binary output of "0x1111"
" 1: 1000100010001"
" 9: 1000100010001"
"17: 00001000100010001"
"25: 0000000000001000100010001"
"33: 000000000000000000001000100010001"
Formatted binary output of "0x111e"
" 1: 1000100011110"
" 9: 1000100011110"
"17: 00001000100011110"
"25: 0000000000001000100011110"
"33: 000000000000000000001000100011110"
Formatted binary output of "0x111f"
" 1: 1000100011111"
" 9: 1000100011111"
"17: 00001000100011111"
"25: 0000000000001000100011111"
"33: 000000000000000000001000100011111"
注:
冒號前(:
)數量提供使用的字段寬度。
示例輸出顯示如果使用字段寬度提供的數字量不能正確顯示結果數字,則輸出可能會變長。
這與文檔中描述的完全相同。 (由我強調):
fieldWidth指定一個被填充到
什麼是你的問題/問題的空間最低量? – Scheff
如果您打算輸出固定數量的數字的二進制數字(作爲文本),您可能應用某種格式... – Scheff
請提出問題,並提供一個最小的,完整的,可驗證的示例https:// stackoverflow.com/help/mcve – Nic