假定x=500,求下面函数的返回值______ 。 int fun(int x) { int countx = 0; while (x) { countx++; x = x & (x – 1); } return countx; }
区块链毕设网qklbishe.com为您提供问题的解答
假定x=500,求下面函数的返回值______ 。
int fun(int x) { int countx = 0; while (x) { countx++; x = x & (x – 1); } return countx; }
在这个特定的函数中,可以这样理解。每次执行 x = x & (x – 1) 操作都会消除 x 的二进制表示中的一个 1 ,而循环的次数就是 x 的二进制表示中 1 的个数。 所以在这个函数中,确实可以说最终的返回值就是 x 的二进制表示中 1 的个数。 将 500 转换为二进制的方法是除 2 取余,逆序排列。 500÷2 = 250……0 250÷2 = 125……0 125÷2 = 62……1 62÷2 = 31……0 31÷2 = 15……1 15÷2 = 7……1 7÷2 = 3……1 3÷2 = 1……1 1÷2 = 0……1 将余数逆序排列可得 500 的二进制为 111110100。
编辑于 今天 17:35:47
以上就是关于问题假定x=500,求下面函数的返回值______ 。
int fun(int x) { int countx = 0; while (x) { countx++; x = x & (x – 1); } return countx; }的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训