将任何正实数转换为二进制字符串的Python程序
给定任何大于或等于零的实数作为浮点数传入,打印输入实数的二进制表示。
例子:
Input: 123.5
Output: 1 1 1 1 0 1 1 . 1
Input: 0.25
Output: .01
数学逻辑以及编程中完成的步骤:
任何实数都分为两部分:整数部分和小数部分。对于这两个部分,操作和逻辑都不同,以将它们转换为二进制表示。
- 整数部分:
第 1 步:将整数部分除以 2 并记下其余数(它将是 0 或 1)。
第 2 步:再次将整数部分除以 2(通过将初始整数除以 2 从第 1 步获得的整数)并记下其余数。
重复这些步骤,直到您的整数不为零。
第 3 步:现在反转您在每个步骤中记下的余数序列。这是整数部分的二进制表示。编程步骤:
def intpartbinary(m): a=[] n=int(m) while n!=0: a.append(n%2) n=n//2 a.reverse() return a
定义一个函数
intpartbinary()
将整数部分转换为二进制表示。定义一个空列表,将输入的实数的整数部分除以 2,并将其余数存储到一个空列表中,每次while n==0
时,反转列表,这将是整数部分的二进制表示。 - 小数部分:
第 1 步:将小数部分乘以 2 并只写出整数部分。
步骤 2:从步骤 1 中获得的数字中减去整数部分(将小数部分乘以 2),再将小数部分乘以 2。
重复这些步骤,直到小数部分不为零。获得的序列是给定小数部分的二进制表示。编程步骤:
def decimalpartbinary(m): a=[] n=m-int(m) while n!=0: x=2*n y=int(x) a.append(y) n=x-y return a
定义一个函数
decimalpartbinary()
将小数部分转换为二进制。再次定义一个空列表,通过从输入的实数中减去输入的实数的整数部分,从输入的实数中提取小数部分。现在将其乘以 2 并将结果数字的整数部分仅存储到列表中,然后再次取小数部分并乘以 2,存储其整数部分。重复这个过程,直到小数部分不为零,这将是小数部分的二进制表示。
现在最后结合,下面给出的所有二进制转换将是输入实数的二进制表示。首先写出取反的余数序列和一个点(点),然后写出整数部分序列,我们将小数部分乘以 2 并仅提取整数部分。
def binarycode(m):
a = intpartbinary(m)
b = decimalpartbinary(m)
c = []
for i in range(0, len(a)):
c.append(a[i])
c.append('.')
for j in range(0, len(b)):
c.append(b[j])
print('Binary code of given function is\n')
for k in range(0, len(c)):
print(c[k], end=' ')
为此,我们将定义一个名为binarycode()
的函数。定义一个空list c=[]
,首先存储整数部分每次除以 2 得到的取反列表,然后在该列表中存储一个小数 c,现在存储整数部分每次乘以 2 得到的列表并且只存储整数部分。现在打印列表 c。最后,我们将实数的二进制表示转换为二进制表示。
下面是实现。
# defining a function to convert
# integer part to binary
def intpartbinary(m):
a = []
n = int(m)
while n != 0:
a.append(n % 2)
n = n//2
a.reverse()
return a
# defining a function to convert
# fractional part to binary
def decimalpartbinary(m):
a = []
n = m-int(m)
while n != 0:
x = 2 * n
y = int(x)
a.append(y)
n = x-y
return a
# arranging all data into suitable format
def binarycode(m):
# arranging all data to our desired
# format
a = intpartbinary(m)
b = decimalpartbinary(m)
c =[]
for i in range(0, len(a)):
c.append(a[i])
c.append('.')
for j in range(0, len(b)):
c.append(b[j])
print('Binary code of given function is\n')
for k in range(0, len(c)):
print(c[k], end =' ')
# Driver Code
binarycode(123.5)
输出:
Binary code of given function is
1 1 1 1 0 1 1 . 1