有什麼辦法來構建從十六進制std::string
或QString
,反之亦然一個std::bitset
而不執行二進制移位操作?我知道如何做到這一點,但我想知道是否有可能使用C++流或類似的東西來做到這一點。從一個std創建的std :: bitset的或QBitArray ::字符串或QString的含有十六進制數字
這裏是我到目前爲止的代碼(試圖避免在主持人的火來):
QString data("aabbccddeeff");
QByteArray temp = QByteArray::fromHex(data.simplified().toLatin1());
QBitArray bits(temp.count()*8);
for(int i=0; i<temp.count(); ++i) {
for(int b=0; b<8;b++) {
bits.setBit(i*8+b, temp.at(i)&(1<<(7-b)));
}
}
結果位的最大長度是多少?它是否比您的平臺上最寬的整數更長? –
@JohnZwinck它的128位或16字節最大。 – Barracuda