试图在 Qt 中读取二进制文件。
该文件具有混合文本和二进制(十六进制)数据。
该文件包含长度由十六进制数字指定的数据区域。
例如:
00 01 BE 00 00 00 00 00 00 00 00 00 01
这里“BE”在文件中的偏移量 BB 处。BE 是 190,所以我向前滚动到上面的最后一个字节,我知道接下来的 190 个字节是我的数据。
几天来,我一直在努力让我的 Qt 代码将上面的字节值“BE”转换为数字 190。
我得到的最好的是“-66”,当然是190-256。
另一个例子是:
00 01 D3 63 00 00 00 00 00 00 00 01
应转换为 25555 十进制的“63D3”。
这是我的代码片段:
阅读文件:
QFile file(iFile); if (!file.open(QIODevice::ReadOnly)) return; QByteArray iContents = file.readAll();
获取长度
ushort c3 = 0xFF; c3 = iContents.at(2); // c3 should be "BE" hex. printf ( "%0x %d\n", c3, c3 );
输出是:
FFFFFFBE -66
我如何才能将其读取为 190?
搜索后我尝试了各种方法,但似乎没有任何效果,这表明我的代码中缺少一些基本的东西。
当前进行转换的代码是:十进制