宏定義實現一個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;
}

運行結果:


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