C语言字符位反转

昨天做了字符串反转,想到以前做过位反转,就记一下。

比如一个字符为“10100110”(十六进制数据为0xA6),反转后就成为“01100101”(十六进制数据为0x65)

代码如下:

//位反转
void reverse(unsigned char *data)
{
	unsigned char temp=0;//将反转的数据放在temp里
	int i;
	for(i=0;i<8;i++)
	{
		temp = temp <<1;  //temp左移
		temp = temp | (*data & 0x01);
		*data = *data>>1;   //data右移
	}
	*data = temp;
}

字符串发反转是以中间为界,相互交换数据,而位反转,在于移位。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章