在QBytearray中存储十六进制,提取它并将其转换为十进制

时间:2016-03-18 10:43:47

标签: c++ qt hex decimal qbytearray

let success = SSZipArchive.createZipFileAtPath(zipFullFilename, withContentsOfDirectory:dataDir, keepParentDirectory:true)

这导致-91,而0xA5代表十六进制165。

如何在QBytearray中存储十六进制,解压缩并将其转换为十进制?

1 个答案:

答案 0 :(得分:2)

-91只是char值的表示。 char的范围为--127..127。您存储的值165大于127

但是,unsigned char的范围为0..255。因此,在这种情况下,您可以将您的值读作unsigned char

qDebug() << "SOP: " << (unsigned char)p[0];

此外,您可以使用QString显示相应的十六进制值:

QString hex = QString("%1").arg((unsigned char)p[0] , 0, 16);
qDebug() << "Hex: " << hex;