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;
}

字符串發反轉是以中間爲界,相互交換數據,而位反轉,在於移位。

 

 

 

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