【问题标题】:Storing hex in QBytearray, extracting it and converting it to decimal将十六进制存储在 QBytearray 中,提取并将其转换为十进制
【发布时间】:2016-07-05 02:01:52
【问题描述】:
int dd = 0xA5;

QByteArray p;
p.push_back (0xA5);
qDebug () << "SOP: " << (int)p[0];

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

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

【问题讨论】:

    标签: c++ qt hex decimal qbytearray


    【解决方案1】:

    -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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多