嵌入式C快速翻转一个任何类型的数的二进制位

来源:互联网 发布:传智软件科技有限公司 编辑:程序博客网 时间:2024/06/06 14:14
unsigned char reverse_bits(unsigned char value){    unsigned char answer , i ;     answer = 0 ;    for(i = 1 ; i != 0 ; i <<= 1)    {        answer <<= 1 ;         if(value & 1)            answer |= 1 ;         value >>= 1 ;         }        return answer ;}

以上程序实现的是对一个8bit的无符号字符型的数的二进制位进行翻转,比如我传入的是0xfe的话,对应的二进制就是:

1111 1110 ,翻转得到的answer是:0111 1111

这个函数可以做到任意类型的数据进行翻转,如果想翻转更大的数,可以将unsigned char改成unsigned int 或者 unsigned long 或者unsigned short这些类型,这样翻转过后的数值就会更大。

0 0
原创粉丝点击