假定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链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 假定x=500,求下面函数的返回值______ 。 int fun(int x) { int countx = 0; while (x) { countx++; x = x & (x – 1); } return countx; }