看了两个有趣的小题,有点想法
2008-07-30 12:02
267 查看
题:
1,int average(int x, int y) //返回X,Y 的平均值
{
return (x&y)+((x^y)>>1);
}
2,判断一个整数是不是2的幂boolean power2(int x)
{
return ((x&(x-1))==0)&&(x!=0);
}
想法:
第一个题简单来说就是两个数的和除以2,右移是除以2,位运算是针对每一位来讲,并不进位,x&y只有都是1时为1,在实际运算中就相当于对计算中需进位的数实现了左移,
至于将异或x^y>>1是指把实际运算中没有进位的数进行除以2(就是右移)计算。
第2题比第一题容易理解,2进制数2的幂的形式就是例如00100000,00010000等等,
例如00010000,减一后为00001111,做&运算,自然是==0,依此类推,自然就可以找到为2的幂的数了
1,int average(int x, int y) //返回X,Y 的平均值
{
return (x&y)+((x^y)>>1);
}
2,判断一个整数是不是2的幂boolean power2(int x)
{
return ((x&(x-1))==0)&&(x!=0);
}
想法:
第一个题简单来说就是两个数的和除以2,右移是除以2,位运算是针对每一位来讲,并不进位,x&y只有都是1时为1,在实际运算中就相当于对计算中需进位的数实现了左移,
至于将异或x^y>>1是指把实际运算中没有进位的数进行除以2(就是右移)计算。
第2题比第一题容易理解,2进制数2的幂的形式就是例如00100000,00010000等等,
例如00010000,减一后为00001111,做&运算,自然是==0,依此类推,自然就可以找到为2的幂的数了
相关文章推荐
- 一点想法 有点疑惑
- 对以后有点想法了
- 三峡大坝是否为干旱的原因? 专家说没有证据证明有,个人有点想法。
- URAL 2027 2028 两个有趣的题
- 学习C#的委托时,有点想法和大家共享
- 编程世界里关于两个数值大小的有趣比较
- 两个有趣的题:一行代码交换两个整数的值, 整数的相反数等于自身?
- 为什么我们不要.NET程序员(读后有点想法,所以转来了) 注:本文来自CSDN
- 这本小书的目的是引导你进入 React 和 Webpack 的世界。他们两个都是非常有用的技术,如果同时使用他们,前端开发会更加有趣。
- PHP的两个特性导致waf绕过注入(有趣的知识点)
- [笔试题] 两个有趣的问题
- 有点想法
- 几个有趣的小题
- 有趣的两个命令
- 面向对象编程--两个有趣的例子
- 两个有趣的关于java里基本类型转换的问题
- 【积淀】半夜突然有点想法
- 两个有趣的问题 .
- @autoreleasepool 重指向的问题, 两个小题 (第二题两个错误)
- js函数中两个比较有趣的方法:apply()和call()