早教吧 育儿知识 作业答案 考试题库 百科 知识分享

算法:利用二进制求一个数n的第m位是几(从低位到高位)?示例给出了如下代码intgetBit(intn,intm){return(n>>(m-1))&1;}我做了如下验证取123的第2位,n=123、m=2,123=01111011,首先:01111011>>(2-1)=0011110

题目详情
算法:利用二进制求一个数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.
请采纳最佳答案~