码迷,mamicode.com
首页 > 编程语言 > 详细

【C语言】用宏实现一个整形奇偶位交换

时间:2015-07-01 10:00:28      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

//用宏实现一个整形奇偶位交换
//例如6为0000..0110,交换完为0000..1001,即为9
#include <stdio.h>
#define EXCHANGE(num) ((num&(0x55555555))<<1)|((num&(0xaaaaaaaa))>>1)      //取出奇数位左移,取出偶数位右移,最后相加
int main()
{
	printf("%d\n", EXCHANGE(6));   //9
	printf("%d\n", EXCHANGE(0));   //0
	printf("%d\n", EXCHANGE(-1));   //-1
	printf("%d\n", EXCHANGE(-2));   //-3
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

【C语言】用宏实现一个整形奇偶位交换

标签:

原文地址:http://blog.csdn.net/doudouwa1234/article/details/46706701

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!