位翻转的一种高效率算法

/*****************************************************************************
FileName : flip.c
Function : 高效率的位翻转程序
Author   : mike
Email    : [email protected]	
Version  : V1.0
Date     : 2019-07-12
Note     : 1个byte数据,从BIT(0)翻转到BIT(7),比如11100000,翻转后为00000111
*****************************************************************************/
#define u8 unsigned char

IAR_CONST u8 flip_tab[16]={0x00,0x08,0x04,0x0c,0x02,0x0a,0x06,0x0e,
                           0x01,0x09,0x05,0x0d,0x03,0x0b,0x07,0x0f};

u8 flip_bit(u8 dat)		//keil测试26个时钟周期
{
     dat = flip_tab[(dat & 0xf0)>>4] | (flip_tab[dat & 0x0f]<<4);
     return dat;
}

 

你可能感兴趣的:(C语言,算法)