热呼呼的笔试题,大家看看有没有效率高点的方法
给两个参数,分别为int num,int n,只能用+,-,*,/ 返回第n位的二进制数。如:num=10,n=3,返回0.
[解决办法]
(m> > (n-1))&1
[解决办法]
辗转/2
[解决办法]
for (int i=1;i <n;i++)
{
num/=2;
}
return num-num/2*2;
[解决办法]
用num除n次2,然后将得到的数的最低位取出来。
至于怎么取最低位,可以再除一次2,然后乘一次2,得到一个值,再用原来的数去减这个值,就可以了。