Python程序打印位数以存储整数以及二进制格式的数字
给定一个整数,任务是编写一个Python程序来打印存储该整数的位数,并以二进制格式打印相同的数字。
例子:
Input: n = 10
Output:
Number of bits to store the number: 4
Binary value: 0b1010
Input: n = 120
Output:
Number of bits to store the number: 7
Binary value: 0b1111000
任务可以通过 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)
输出:
Number of bits required to store 10: 4
Binary Representatiaon:1010
方法二:使用递归
此代码执行与方法 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)
输出:
Binary Representation of 17: 10001
Number of bits required to store 17: 5
方法 3:使用内置函数
Python带有内置的复杂函数,只需几行即可执行相同的任务。为了找到存储整数的总位数,我们使用bit_length()函数,它用数字(整数值)调用并返回存储给定数字的总位数。
Syntax: int.bit_length(n)
Parameter: n, where it is an integer
Returns: The number of bits required to represent an integer in binary, excluding the sign and leading zeros.
要打印给定整数的二进制值,我们使用bin()函数,它接受数字作为参数并返回二进制值。
Syntax : bin(a)
Parameters :
a : an integer to convert
Return Value :
A binary string of an integer or int object.
Exceptions :
Raises TypeError when a float value is sent in arguments.
产生的输出将在数字前面有 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
输出:
Number of bits required to store 120: 7
Binary Representation 0b1111000