位操作的实用功能
来源:互联网 发布:百度大数据分析 编辑:程序博客网 时间:2024/06/06 05:19
利用位操作实现简单的功能
位操作虽然会降低程序的可读性,但是我想,热衷于位操作的人大概都是被它的效率所吸引了。如果某些简单但常用的功能可以利用位操作实现,且用位操作实现的代码量相同或更少,我希望让这些位操作得到普及。
在介绍之前,先列举一下位操作符
a&b //按位与a|b //按位或 a^b //按位异或 ~a //按位取反 a<<b //左移a>>b //有符号右移a>>>b //无符号右移
1. 交换两个整数的值
刚开始接触编程的时候我以为交换两个变量一定需要一个临时变量,但是利用位操作交换两个整数不必需要第三个变量。请看下面的例子:
int a = 9;int b = 11;a=a^b; //1001^1011=0010b=b^a; //1011^0010=1001a=a^b; // 0010^1001=1011
如此便可以交换两个整数的值而不必用第三个参数
2.快速判断两个值时候相等
在学汇编的时候我们也是用xor ax,ax来置零,而并非sub ax,ax。同样道理,要判断两个int数字a,b是否相等,很多人会想到判断a - b == 0,但是如果判断a ^ b == 0效率将会更高。
3.判断奇偶性
利用位操作判断奇偶性可以写成
int a=5;return a&1; //偶数返回0,奇数返回1
4.除以2 & 乘以2
int a=5;a>>1; //除以2a<<1; //乘以2
0 0
- 位操作的实用功能
- 数组的实用功能
- 线程的实用功能
- securecrt 的一些实用功能
- Postgres的日志实用功能
- idea的实用功能
- Select语句的实用功能:Sql语句中操作Excel - 以下语句已经测试正确
- matlab对文本文件、数据文件等的文件读取、操作等实用功能总结
- 有实用功能的委托实例
- iphone 有关界面的实用功能
- Evbuffers:IO缓冲的实用功能
- python -m的那些实用功能
- 简单的位操作
- C的位操作
- 位向量的操作
- c的位操作
- C的位操作
- 位的操作
- hdu1010 Tempter of the Bone (dfs)奇偶剪枝
- P2P cmom
- 神经网络制导律(不带角度约束)源代码
- 【Salesforce】Visualforceの<apex:commandButton>でApexへパラメータを渡す方法
- mysql_config_editor/login-path使用
- 位操作的实用功能
- RLE行程长度压缩算法C版本【转】
- 三维纯比例制导源代码
- 这个建筑风水布局值一亿
- SQL中级-连接表达式
- 一行代码求最大公约数(欧几里得算法)
- 数据结构专题——线段树
- FFT快速傅立叶算法纯C语言版本【转】
- 13-CSS文字与文本