对一个8位的二进制数进行位倒序

题目要求:一个8比特的数,要求编写一端C程序实现位倒序功能.如:a=b0b1b2b3b4b5b6b7,编程实现a=b7b6b5b4b3b2b1b0(要求实现的速度尽可能的快)

实现有各种方法,如果是汇编似乎会稍微简单点,而要求c语言或许没有那么高效了,我只能想到大家都能想到的一种方法,记下来,以后可以看看。

如果谁有好的方法可以给我留言啊。thanks!

代码::

#include 
void main(){
	int a=0xf0,b=0,i,temp;
	printf("a = %x\n",a);
	for(i=0;i<8;i++){
		temp=a&0x01;
		a=a>>1;
		b=b+temp;
		if(i != 7)
			b=b<<1;
	}
	printf("\n");
	printf("b = %x\n",b);
}



输入为:10100101

输出为:10100101

你可能感兴趣的:(C)