宏,将一个数字的奇数位和偶数位交换
来源:互联网 发布:男士去油洗面奶 知乎 编辑:程序博客网 时间:2024/06/05 02:45
用宏定义的方式,将一个数的二进制形式数的奇偶位进行交换。
其实非常简单,步骤如下:
1.先将这个数左移一位,然后与0xAAAAAAAA相与,此时就保存了奇数位。
2.再将这个数右移一位,然后与0x55555555相与,此时就保存了偶数位。
3.最后将1,2两步的结果或一下,就得到了最终的结果。
代码是这样的:
//author:fl_sw//date://function:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdlib.h>//宏一个二进制数奇偶位的交换#define SWAP_JO(A) ((((A)>>1)&0x55555555)|(((A)<<1)&0xAAAAAAAA))int main(){ int num = 0; int res = 0; printf("请输入一个数:\n"); scanf("%d",&num); res=SWAP_JO(num); //使用宏 void show_bin(); show_bin(num, res); return 0;}//验证(分别打印 输入的数 和 已经完成奇偶交换后的数 的 十进制形式 和 二进制形式)void show_bin(num,res){ char a[33]; char b[33]; itoa(num, a, 2); //函数itoa打印二进制字符串 itoa(res, b, 2); printf("奇偶位交换前的数是 %d 。它的二进制数为 %s\n",num,a); printf("奇偶位交换后的数是 %d 。它的二进制数为 %s\n",res,b);}
运行结果:
阅读全文
1 0
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏将一个数字的奇数位和偶数位交换
- 【C语言】写一个宏将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位(二进制)交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 如何用一个宏将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- 写一个宏可以将一个数字的奇数位和偶数位交换。
- 写一个宏可以将一个数字的奇数位和偶数位交换
- C语言--宏将一个数字的奇数位和偶数位交换
- 超出文本内容用...表示
- jsp调用java函数的方法
- 点击哪个元素显示哪个的序号,三种解法~
- Spark整合Hive
- easyui-window的z-index失效
- 宏,将一个数字的奇数位和偶数位交换
- SPOJ 297 Aggressive cows 最小间隔
- linux 驱动——时间、延时及延缓操作
- OPENGL学习笔记之六
- 编译hadoop2.6.0-cdh5.7.0 native支持snappy & 编译中遇到的坑及解决办法
- shell变量的子串的截取/删除/替换
- docker对.netcore的部署
- H5项目常见问题汇总及解决方案
- 事件冒泡和事件委托的共鸣与相互利用