Qt 16位和32位高低位转换

一、16位高低位转换

1 quint16 highAndLowConversion_16quint16 data)
2 {
3        return data & ox00ff) << 8) | data >> 8);
4 }

 二、32位高低位转换

1 quint32 highAndLowConversion_32quint32 data)
2 {
3       return data & 0x0000ffff) << 16) | data >> 16);
4 }

 三、获取32位的高16位

1 quint16 get32BitHigh16Bitquint32 data)
2 {
3       return data & 0xffff0000) >> 16;
4 }

四、获取32位的低16位

1 quint16 get32BitLow16Bitquint32 data)
2 {
3       return data & 0x0000ffff;
4 }

 五、交换32位高低16位,并且交换16位中的高低8位,如下两种方式:

int Global::Conversion_32int data)
{
    int H = data & 0xffff0000) >> 16;
    int L = data & 0x0000ffff;
    int H_16bit = H & 0x00ff) << 8) | H >> 8);
    int L_16bit = L & 0x00ff) << 8) | L >> 8);

    return  L_16bit << 16 | H_16bit;
}


int Global::Con_32To_16bitTo_8bitint  data)
{

    int n32 = data & 0x0000ffff) << 16) | data >> 16);

    return n32 & 0x00ff) << 8) | n32 >> 8);
}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平