在数据传输中,有的先MSB,后LSB;有的先LSB,后MSB。有了位逆序算法,便可兼容两种不同的传输格式。(除此之外,还可以通过二分法来实现。二分法,各个新的整体对半交换,直到交换个数的数量级为1时结束)
算法的思想是按位提取,然后将数据按位逆序存储。
#define BIT_SIZE 32
#define u32 unsigned int
#define int32 int
u32 BitReverse(u32 x)
{
u32 uiTmp = 0;
int32 ipos = 0;
uiTmp |= x & 1;
for(ipos = 1; ipos < BIT_SIZE; ipos++)
{
x >>= 1;
uiTmp <<= 1;
uiTmp |= x & 1;
}
return(uiTmp);
}