unsigned char rDInputAll[2] 用 C++ qt 帮我写一个函数 把每一位bit分出来
时间: 2024-12-13 12:15:19 浏览: 9
`unsigned char rDInputAll[2]`是一个包含两个无符号字节(char)的数组,在Qt中,你可以通过位操作符将这个数组中的每一位提取出来并存储到单独的变量中。这里我为你提供一个简单的C++函数示例:
```cpp
#include <QVector>
#include <bitset>
// 定义一个函数,接收一个包含两位无符号字节的数组作为输入
QVector<bool> extractBitsFromBytes(const unsigned char rDInputAll[2]) {
QVector<bool> bits(16, false); // 创建一个可以存放16位布尔值的向量
// 将每个字节转换为二进制,并按位逐个存入向量
for (size_t i = 0; i < sizeof(rDInputAll); ++i) {
bits[i * 8] = static_cast<bool>(rDInputAll[i] & 0x80);
bits[i * 8 + 1] = static_cast<bool>(rDInputAll[i] & 0x40);
bits[i * 8 + 2] = static_cast<bool>(rDInputAll[i] & 0x20);
bits[i * 8 + 3] = static_cast<bool>(rDInputAll[i] & 0x10);
bits[i * 8 + 4] = static_cast<bool>(rDInputAll[i] & 0x08);
bits[i * 8 + 5] = static_cast<bool>(rDInputAll[i] & 0x04);
bits[i * 8 + 6] = static_cast<bool>(rDInputAll[i] & 0x02);
bits[i * 8 + 7] = static_cast<bool>(rDInputAll[i] & 0x01);
}
return bits;
}
// 示例如何使用该函数
int main() {
unsigned char rDInputAll[2] = {0b10101010, 0b01010101}; // 示例数据
QVector<bool> result = extractBitsFromBytes(rDInputAll);
// 现在result包含了两个字节中所有位的布尔表示
// 可以进一步处理这些比特信息
阅读全文