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这些类型,这样翻转过后的数值就会更大。
本文介绍了一个简单的C函数,用于反转8位无符号字符型数的二进制位。通过逐步移位操作,该函数能高效地完成位翻转任务,并且可以根据需要调整数据类型来处理更大的数值。
471

被折叠的 条评论
为什么被折叠?



