C语言 字节 翻转 单片机

2024-12-15 13:40:56
推荐回答(5个)
回答1:

直接左移5位就可以了

回答2:

u8 BYTE_TABLE[] = { 0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F };

u8 Overturn(u8 data)
{
    u8 res;
    
    res = (BYTE_TABLE[data & 0xF]) << 4;
    res |= BYTE_TABLE[data >> 4];
    return res;
}
        
void test3() {
u16 i;

for(i=0;i<=0xff;i++){
printf("%2x:%2x\r\n",i,Overturn(i));
}
}

回答3:

这个问题比较简单:0-7,1-6,2-5,3-4位互换即可,可定义一个临时变量 unsigned char tmp保存中间结果。

回答4:

void main()
{
unchar i,x,y=0;

for(i=0;i<8;i++)
{
if((x>>i)&0x01==1)
y=1<<(7-i)|y;
}

while(1);
}

回答5:

向右移动4位, 0000 0111--》 0111 0000