Python程序计算整数中设置的位数


2022年4月10日, Learn eTutorial
1910

二进制数系中设置的位是什么?

在整数的二进制表示中,我们使用两个位,即1和0,其中1被称为设置位。因此,在这个Python程序中,我们必须计算整数中“1”的数量。让我们以9为例;它的二进制表示是1001,而“1”的数量2

如何在Python中计算设置位?

为了在Python编程中应用此逻辑,我们接受用户输入的整数,并调用用户定义的函数来计算该数字中设置的位数。

在该函数内部,我们将一个计数变量初始化为。然后我们打开一个while循环,直到数字为零。在该循环内部,我们使用按位与运算符对nn-1进行操作。当我们对nn-1进行按位与操作时,它将移除最后一个1位。我们使用计数变量来检查我们执行多少次按位与操作才能使数字n变为零。这将是1的数量。

算法

步骤1: 使用Python编程语言中的input函数从用户那里接受一个整数。

步骤2: 调用函数计算数字中的位数。并使用Python语言中的print函数打印该返回值。

用户自定义函数countbits(n)

步骤1: 将数字作为参数从调用函数传递给该函数。

步骤2: 将计数变量初始化为零,用于计数设置位。

步骤3: 打开一个while循环,直到数字为零。

步骤4: 使用按位与运算符对数字nn-1进行操作,以移除数字n中的最后一个1位。继续操作,直到数字n为零。

步骤5: 在每次按位与操作迭代中递增计数。

步骤6: 返回并打印计数。


为了找到设置位的计数,我们使用了以下Python主题,请参考这些主题以获得更好的理解

Python 源代码

                                          def count_set_bits(n):
    count = 0
    while n:
        n &= n - 1
        count += 1
    return count
 
 
num = int(input('Enter number: '))
print("Equivalent Binary Number: ", bin(num)[2:])
print('Number of bits that set in the number:', count_set_bits(num))
                                      

输出

Enter number: 12
Equivalent Binary Number:  1100
Number of setbits in that set in the number: 2