如何实现一个8bit的二进制数反转呢。
有以下方法:
=================我是华丽的分割线===================
uint8 bin8_rev(uint8 data)
{
data=((data&0xf0)>>4) | ((data&0x0f)<<4);
data=((data&0xCC)>>2) | ((data&0x33)<<2);
data=((data&0xAA)>>1) | ((data&0x55)<<1);
return data;
}
--------------------------我也是一条分割线------------------------------
unsigned char code tab[16]={0x00,0x08,0x04,0x0c,0x02,0x0a,0x06,0x0e,0x01,0x09,0x05,0x0d,0x03,0x0b,0x07,0x0f};
unsigned char bin8_rev(unsigned char bb)
{
return ((tab[bb>>4])|(tab[bb&0x0f]<<4));
}
半字节反转码
==============持续分割线中=====================
第二种方法比较快速
文章评论(0条评论)
登录后参与讨论