所以这就是问题,我从蓝牙传输接收1个字节。使用QDebug时,我收到此消息:
The array with error has "\x06"
失败的一行是:
bool ok = true;
int v = value.toInt(&ok,0);
因为ok
有false
。但是我试图围绕这样一个事实:如果在该字节中表示的数据(作为一个零和一的序列)将始终具有有效的整数表示,那么转换如何首先失败。 (一个字节总是可以表示为-127到128之间的int)。所以我留下了问题,转换怎么会失败?
阅读文档并没有提供很多线索,因为它没有说明如何解释字节数组。
答案 0 :(得分:0)
QByteArray::toInt
将默认C语言环境中的字符串表示形式转换为整数。这意味着要成功转换示例中的值,您的字节数组必须包含字符串"0x06"
,其中包含4个字节。
要将单个字节转换为int,只需将其解压缩:
int i = value[0];
类型提升会将char扩展为int