【发布时间】:2018-12-30 14:39:48
【问题描述】:
您好,我从一个文件中读取了一个压缩 BCD,我想将其转换为十进制表示。 数据长度为 32 字节,例如这是文件中的内容:
95 32 07 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 01 00 13 00
我想按原样显示数据,我该怎么做?
感谢 schef 它对我有用。 我有另一个问题: 我读取的一些数据是用于eeample的原始十六进制格式的数字数据:
22 d8 ce 2d
必须解释为:
584633901
什么是最好和最快的方法? 目前我是这样做的:
QByteArray DTByteArray("\x22 \xd8 \xce \x2d");
QDataStream dstream(DTByteArray);
dstream.setByteOrder(QDataStream::BigEndian);
qint32 number;
dstream>>number;
对于 1 和 2 字节整数,我这样做:
QString::number(ain.toHex(0).toUInt(Q_NULLPTR,16));
【问题讨论】:
-
一般来说,一个问题一个问题。关于你的第二个问题:这是一种可能的方式,虽然我不确定是否最快。另一种选择是使用位运算符在普通 C++ 中执行此操作。
标签: c++ qt5 qstring qbytearray bcd