算法:利用二进制求一个数n的第m位是几(从低位到高位)?

示例给出了如下代码int getBit(int n, int m){ return (n >> (m-1)) & 1;}我做了如下验证取123的第2位,n=123、m=2,123=01111011,首先:01111011>>(2-1)=00111101然后:00111101&00000001=00000001也就是说算出来123的第2位是1?但是123的第2位明显是2嘛,求解

这里的第二位是针对二进制而言的,不是针对十进制。
01111011第二位是从右边开始数 ,最右边第1位是1,第二位是1。
请采纳最佳答案~
温馨提示:答案为网友推荐,仅供参考
相似回答