QBitArray 和 QByteArray 互相转换

QByteArray 转换为 QBitArray

// QByteArray 转换为 QBitArray
static QBitArray bytesToBits(const QByteArray &bytes)
{
    QBitArray bits(bytes.count() * 8);
    for (int i = 0; i < bytes.count(); ++i)
        for (int b = 0; b < 8; ++b)
            bits.setBit(i * 8 + b, bytes.at(i) & (0x01 << (7 - b)));
    return bits;
}

QBitArray 转换为 QByteArray

// QBitArray 转换为 QByteArray
static QByteArray bitsToBytes(const QBitArray &bits)
{
    QByteArray bytes;
    bytes.resize(bits.count() / 8 + ((bits.count() % 8)? 1: 0));
    bytes.fill(0x00);
    for (int b = 0; b < bits.count(); ++b)
        bytes[b / 8] = ( bytes.at(b / 8) | ((bits[b] ? 1: 0) << (7 - (b % 8))));
    return bytes;
}

参考资料

  • https://stackoverflow.com/questions/8776261/qbitarray-to-qbytearray
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值