📜  Python程序打印位数以存储整数以及二进制格式的数字

📅  最后修改于: 2022-05-13 01:54:43.277000             🧑  作者: Mango

Python程序打印位数以存储整数以及二进制格式的数字

给定一个整数,任务是编写一个Python程序来打印存储该整数的位数,并以二进制格式打印相同的数字。

例子:

任务可以通过 3 种方式完成,所有这些都在下面给出:

方法 1:使用循环

在这里,我们将使用最基本的方法将给定的数字转换为二进制形式,将其除以 2 直到数字变为 0,并在每次除法后存储余数。以这种方式继续,数组的大小将给出存储整数的位数,数组的反向给出整数的二进制格式。

方法

  • 声明或接受输入
  • 继续除以 2 并存储获得的余数
  • 在该过程结束时,打印其二进制等价物以及存储它所需的位数。

例子 :

Python3
list1 = []
num = 10
 
while (num > 0):
    list1.append(num % 2)
    num = num//2
 
print("Number of bits required to store 10:", len(list1))
print("Binary Representatiaon:", end="")
for i in reversed(list1):
    print(list1[i], end="")


Python3
def decimalToBinary(n, x):
 
    if n > 1:
        # divide with integral result
        # (discard remainder)
        x = decimalToBinary(n//2, x)
 
    print(n % 2, end="")
    return x+1
 
 
# Driver code
if __name__ == '__main__':
    x = 0
    print("Binary Representation of 17:", end=" ")
     
    x = decimalToBinary(17, x)
     
    print()
    print("Number of bits required to store 17:", end=" ")
    print(x)


Python3
num = 120
 
s = bin(120)
 
print("Number of bits required to store 120:", end=" ")
print(num.bit_length())
 
print("Binary Representation", end=" ")
print(s)


输出:

方法二:使用递归

此代码执行与方法 1 中给出的任务相同的任务,但我们将使用递归代替循环。

方法:

  • 声明或接受输入
  • 继续除以 2 并存储使用递归函数获得的余数
  • 在该过程结束时,打印其二进制等价物以及存储它所需的位数。

例子:

蟒蛇3

def decimalToBinary(n, x):
 
    if n > 1:
        # divide with integral result
        # (discard remainder)
        x = decimalToBinary(n//2, x)
 
    print(n % 2, end="")
    return x+1
 
 
# Driver code
if __name__ == '__main__':
    x = 0
    print("Binary Representation of 17:", end=" ")
     
    x = decimalToBinary(17, x)
     
    print()
    print("Number of bits required to store 17:", end=" ")
    print(x)

输出:

方法 3:使用内置函数

Python带有内置的复杂函数,只需几行即可执行相同的任务。为了找到存储整数的总位数,我们使用bit_length()函数,它用数字(整数值)调用并返回存储给定数字的总位数。

要打印给定整数的二进制值,我们使用bin()函数,它接受数字作为参数并返回二进制值。

产生的输出将在数字前面有 0b,它只是一个指示符,它后面是二进制表示。如果需要,您可以将其删除。

例子:

蟒蛇3

num = 120
 
s = bin(120)
 
print("Number of bits required to store 120:", end=" ")
print(num.bit_length())
 
print("Binary Representation", end=" ")
print(s)
输出
Number of bits required to store 120: 7
Binary Representation 0b1111000

输出: