QT<26> Qt在通讯中将一个16位数据拆成16个二进制数据以及将16个二进制数据拼成一个16位数据

主要用于在通讯协议中读写寄存器

QVector<quint16> ModbusTCP::HexToBin(quint16 value)
{
    QVector<quint16> res;
    for(int i = 0; i < 16; i++){
        quint16 twoPow = pow(2, i);
        quint16 S_value = (value & twoPow) >> i;
        res.append(S_value);
    }
    return res;
}



quint16 ModbusTCP::BinToHex(QVector<quint16> data)
{
    if(data.count() != 16)
        return 0;
    quint16 res = data.at(0)|data.at(1)<<1|data.at(2)<<2|data.at(3)<<3|data.at(4)<<4|data.at(5)<<5|data.at(6)<<6|data.at(7)<<7|
                                         data.at(8)<<8|data.at(9)<<9|data.at(10)<<10|data.at(11)<<11|data.at(12)<<12|data.at(13)<<13|data.at(14)<<14|data.at(15)<<15;
    return res;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值