移位运算解决问题的例子
2012-11-07 22:21
120 查看
巧用(n-1)&n 可以让n二进制最低位的1变成0
1:判断一个数是否是2的次方
bool f(int n){ return ((n-1)&n==0);}
如果一个数是2的次方,那么这个数的二进制中就只有一个1。
(n-1)&n可以让n二进制最低位的1变成0,如果n二进制只有一个1那么n做该种运算后就会变成0。
2:求一个数二进制中1的位数
int f(int n)
{
int count=0;
while(n)
{
count++;
n=(n-1)&n;
}
return count;
}
3:判断一个数奇偶性
bool isEven(int n)
{
if(n&1==1) return false;
else return true;
}
4:对一个正整数除以2得到约数
n>>1
1:判断一个数是否是2的次方
bool f(int n){ return ((n-1)&n==0);}
如果一个数是2的次方,那么这个数的二进制中就只有一个1。
(n-1)&n可以让n二进制最低位的1变成0,如果n二进制只有一个1那么n做该种运算后就会变成0。
2:求一个数二进制中1的位数
int f(int n)
{
int count=0;
while(n)
{
count++;
n=(n-1)&n;
}
return count;
}
3:判断一个数奇偶性
bool isEven(int n)
{
if(n&1==1) return false;
else return true;
}
4:对一个正整数除以2得到约数
n>>1
相关文章推荐
- 编程中移位运算解决的问题(如何求整型变量中1的个数)
- In app purchase 问题解决, 使用 in app rage 例子的问题
- Qt软键盘——解决Qt例子输入失败的问题
- 带query参数报表api运算空指针问题解决方案
- 1016今日学习——用二进制按位运算解决实现函数问题
- N皇后问题 1.dfs 2.位运算解决
- Java中一个运用反射解决问题例子+思考
- java 解决double运算精度问题(使用BigDecimal )
- javaMail发邮件 简单小例子 解决QQ邮箱530 SSL问题
- 一个用观察者模式解决实际问题的例子
- Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合例子(附完整的请假流程例子,jbpm基础,常见问题解决)
- 位运算枚举解决象棋将帅问题
- c#非委托方式在子线程里操作UI控件(实际上运算逻辑在子线程,更新还是在主线程,解决了UI界面无响应的问题)
- Sql语句用left join 解决多表关联问题(关联套关联,例子和源码)
- java 二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题
- VC6.0编译msdn例子时找不到mfc42ud.dll的问题之解决
- (49)静态同步函数的锁是Class对象,例子:懒汉式--在多线程中存在问题--同步解决
- 使用模运算解决的问题
- JS浮点类型运算精度丢失问题解决办法
- android运行谷歌Media Recorder例子时,出现E/MediaRecorder: start failed: -19问题解决