宏定义实现一个int型的数的奇偶位的互换

 写一个宏定义,实现功能是将一个int型的数奇偶位互换,例如6的二进制是0110,第一位与第二位互换,第三位与第四位互换得到1001,输出应该是9


#define SWAP(N)(((N&0x55555555)<<1)|((N&0xaaaaaaaa)>>1))
#include<stdio.h>
#include<stdlib.h>
int main()
{
	printf("%u\n", SWAP(6));
	printf("%u\n", SWAP(20));
	printf("%u\n", SWAP(64));
	printf("%u\n", SWAP(0));
	system("pause");
	return 0;
}

运行结果:


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