热呼呼的笔试题,大家看看有没有效率高点的方法,该如何处理

热呼呼的笔试题,大家看看有没有效率高点的方法
给两个参数,分别为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,得到一个值,再用原来的数去减这个值,就可以了。