19.位运算实战演练
来源:互联网 发布:李小龙拳脚力量数据 编辑:程序博客网 时间:2024/06/06 14:15
因为格式问题,只好截图上传了。
19.macro/* * 公司:XXXX * 作者:Rston * 博客:http://blog.csdn.net/rston * GitHub:https://github.com/rston * 项目:位运算实战演练 * 功能:使用宏定义完成位运算。 */#include <stdio.h>// 用宏定义将32位数x的第n位到第m位(右边起算,也就是bit0算第1位,m是高位)置位#define SET_BIT_N_M(x, n, m) (x | ((~((~0U)<<(m-n+1)))<<(n-1)))// 用宏定义将32位数x的第n位到第m位(右边起算,也就是bit0算第1位,m是高位)清零#define CLEAR_BIT_N_M(x, n, m) (x & (~((~((~0U)<<(m-n+1)))<<(n-1))))/* 以32位二进制格式打印输出data的值,高位为0不清除 */int print_bin(unsigned int data){ int len = sizeof(data)*8; if (0 == len) { printf("0"); printf("\n"); return 0; } for(--len; len>=0; len--) { printf("%d", (data&(1<<len)) != 0); if (!(len%4)) { printf(" "); // 没隔4位打印1个空格 } } printf("\n"); // 最后打印换行符 return 0;}int main(int argc, char **argv){ int x = 0x12345678, n = 5, m = 10; print_bin(x); // 0001 0010 0011 0100 0101 0110 0111 1000 print_bin(SET_BIT_N_M(x, n, m)); // 0001 0010 0011 0100 0101 0111 1111 1000 print_bin(CLEAR_BIT_N_M(x, n, m)); // 0001 0010 0011 0100 0101 0100 0000 1000 print_bin((~0U)); // 1111 1111 1111 1111 1111 1111 1111 1111 print_bin(((~0U)<<(m-n+1))); // 1111 1111 1111 1111 1111 1111 1100 0000 print_bin((~((~0U)<<(m-n+1)))); // 0000 0000 0000 0000 0000 0000 0011 1111 print_bin((~((~0U)<<(m-n+1)))<<(n-1)); // 0000 0000 0000 0000 0000 0011 1111 0000 print_bin((~((~((~0U)<<(m-n+1)))<<(n-1)))); // 1111 1111 1111 1111 1111 1100 0000 1111 return 0;}
0 0
- 19.位运算实战演练
- 2.4.位运算实战演练1
- 2.5.位运算实战演练2--技术升级:用宏定义来完成位运算
- 位运算(实战篇)
- samba3.0实战演练
- 实战演练Autotools
- dojo实战演练
- leetcode 实战演练
- OpenStack实战演练
- 19 实战演练:画板
- Python BeautifulSoup 实战演练
- UIScrollView实战演练
- Storm实战演练:WordCont
- WebGIS 实战演练
- Appium之实战演练
- JavaScript实战演练1.1
- JavaScript实战演练1.2
- javascript实战演练笔记
- MERGE into的用法
- HDOJ 1060 Leftmost Digit
- Viewpager+Fragment实现滚动效果
- 全排列
- Win10+VS2013+CUDA7.5 Caffe 配置过程
- 19.位运算实战演练
- 计算机网络学习笔记——计算机网络的概述(2)
- JavaWeb开发之十八:jsp简单标签开发案例和打包
- PowerDesigner——PowerDesigner 表名、字段大小写转换
- 40. Combination Sum II
- Java - 基本数据类型
- 1007-错误票据
- BestCoder Round #76 (div.2) DZY Loves Balls
- mysql数据库设计篇--表字段类型