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

Storing hex in QBytearray, extracting it and converting it to decimal

本文关键字:转换 十进制 存储 十六进制 QBytearray 提取      更新时间:2023-10-16
int dd = 0xA5;
QByteArray p;
p.push_back (0xA5);
qDebug () << "SOP: " << (int)p[0];

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

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

-91只是字符值的表示。夏亚有一系列--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;