定义一个宏实现整形数字奇偶位交换(二进制位)
来源:互联网 发布:思科网络防火墙5506 编辑:程序博客网 时间:2024/06/08 15:11
定义一个宏实现把一个整形的二进制位的奇偶进行交换。
例如:输入10 ->1010
输出 5 ->0101
实现步骤:
1.把整数的奇数位提出,将偶数位清零(按位与&上0101)
此刻结果为:0000
2.同样将偶数位提出,并将奇数位清零(&1010)
此刻结果为:1010
3.再将偶数位>>1,奇数位<<1
4.按位或|
5.由于32个bit太长,所以为了简洁代码,将4个bit
用一个16进制表示,即奇数位表示为0101->5,
偶数位表示为1010->10(A).
#include<stdio.h>#define SWAP(x) ((((x)&0x55555555)<<1)|(((x)&0xAAAAAAAA)>>1))int main(){ int x;printf("Please Enter:");scanf("%d",&x);printf("%d\n",SWAP(x));return 0;}注:定义宏时若有参数必须给每一个参数带上括号。
0 0
- 定义一个宏实现整形数字奇偶位交换(二进制位)
- C语言 将一个整形数字二进制位进行奇偶交换
- 【C语言】用宏实现一个整形奇偶位交换
- 数字二进制位的奇偶位互换
- 【C语言】宏定义交换二进制数的奇偶位
- 宏定义小程序(写一个宏可以将一个数字的奇数位和偶数位交换)
- 用宏实现将一个十进制数对应的二进制数的奇偶位交换
- 宏实现奇偶位的交换,两个数最大值
- 宏定义实现一个int型的数的奇偶位的互换
- 【c语言】写一个宏定义,实现的功能是将一个int型的数的奇偶位互换
- 写一个宏可以将一个数字的奇数位和偶数位(二进制)交换。
- 宏定义浅谈 用宏定义交换数的奇偶位 用宏定义找出两个数最大值
- 交换二进制奇偶位(算法)
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- 奇偶位交换
- Java之内部类详解
- MySQL忘记密码怎么修改密码
- Java学习笔记--Set接口
- MediaPlayer单曲循环不卡顿
- 轻量级分布式文件系统fastDFS
- 定义一个宏实现整形数字奇偶位交换(二进制位)
- Python学习笔记(8)-类
- servlet 域 getAttribute 和getParameter 笔记
- 开发商问题的领域术语表建立
- strncpy()函数的介绍
- 在Windows下访问Ubuntu共享文件夹
- 第十五周项目G按要求插入字符串中
- 编译MeshLab(4)—VS2010编译MeshLab源码之编译meshlab_full.pro
- boost—— 函数与回调ref小工具类