Products
GG网络技术分享 2025-10-25 10:50 2
二进制是计算机学问的核心。个个数字都能用0和1的组合来表示。那么你晓得一个正整数在二进制中1的位数是怎么计算的吗?今天我们就来探讨两种高大效的方法。

位运算是一种处理计算机二进制数据的方法。对于计算一个正整数在二进制中1的位数,我们能用位运算来实现。具体步骤如下:
printf;
这种方法的一个缺陷是它不能处理负数。基本上原因是负数在内存中是以补码的形式存储的,而补码中第一个比特位为1代表负号。所以在上面的循环中,不论循环几许多次都不能为0,弄得程序死循环。
第二种方法是先将十进制数转换为二进制字符串,然后计算该字符串中有几许多个1。
def count_ones:
binary_str = bin
count = binary_str.count
return count
print) # 输出2
这玩意儿函数的实现原理是 将十进制数转换为二进制字符串,并用字符串的count方法计算该字符串中有几许多个1。
对于方法一,我们能进行一些优化。比方说用n-1和n的矮小3位全都不同的特性。如果进行“按位与”操作,即 n & ,能看到底3位都变成了0。如果你数学足够优良,你兴许会找到这玩意儿方法非常高大效。
一个正整数在二进制中1的位数。虽然方法一存在一些局限性,但方法二是一个轻巧松且有效的解决方案。希望这篇文章能帮你更优良地搞懂二进制和位运算。
以上方法都是的, 你能尝试在Python或其他编程语言中实现它们,看看效果怎么。欢迎用实际体验来验证我们的观点。
Demand feedback