从零开始学Python|如何在Python中将小数转换为二进制

举报
Yuchuan 发表于 2021/03/11 18:53:42 2021/03/11
【摘要】 Python中将小数转换为二进制的学习

Python是一种高度通用且功能强大的编程语言。在可以做的许多事情中,从十进制转换为二进制,反之亦然,这是最突出的一项。因此,在本文中,我们将更多地讨论如何在Python中将十进制转换为二进制,反之亦然。

本文将介绍以下指针,

让我们开始!

要了解此操作的含义,请查看以下示例。 

从十进制到二进制

输入8

输出:1 0 0 0

从二进制到十进制

输入:100

输出4

让我们看看如何在Python中将Decimal转换为Binary,

在Python中将小数转换为二进制

为了将十进制转换为二进制,请看下面的示例。

继续以n / 2调用转换函数,直到n> 1,

之后执行n%1以获得转换后的二进制数的MSB。  

示例: 7

1)。7/2 =商= 3(大于1),余数= 1。

2)。3/2 =商= 1(不大于1),余数= 1。

3)。1%2 =余数= 1。

因此,答案是111。

让我们看一个示例程序,

样例程序

# Function to print binary number for the
# input decimal using recursion
def decimalToBinary(n):
if(n > 1):
# divide with integral result
# (discard remainder)
decimalToBinary(n//2)
print(n%2, end=' ')
# Driver code
if __name__ == '__main__':
decimalToBinary(8)
print("n")
decimalToBinary(18)
print("n")
decimalToBinary(7)
print("n") 

上面程序的输出将如下所示。 

1000

10010

111

我们也可以使用bin函数在Python中将十进制转换为二进制,让我们看看如何,

利用Bin功能

#Function to convert Decimal number 
# to Binary number 
def decimalToBinary(n): 
return bin(n).replace("0b","") 
# Driver code 
if __name__ == '__main__': 
print(decimalToBinary(8)) 
print(decimalToBinary(18)) 
print(decimalToBinary(7))

上面程序的输出看起来像这样

1000

10010

111

既然您知道如何在Python中从十进制转换为二进制,那么让我们看一下如何将二进制转换为十进制。 

Python中的二进制到十进制

为了更好地理解这一点,请参考下面的示例。

示例: 1011

1)。给定二进制数与10的模。 

    (1011 % 10 = 1)

2)。将rem与2乘幂

 它是从右端开始的位置。 

    (1 * 2^0)

    请注意,我们从0开始计数位置。 

3)。将结果与先前生成的结果相加。

    十进制=十进制+(1 * 2 ^ 0)

4)。通过将二进制数除以10来更新二进制数。

    (1011 / 10 = 101)

5)。继续重复上面的步骤,直到二进制> 0。

最终转换-:(1 * 2 ^ 3)+(0 * 2 ^ 2)+

                 (1 * 2^1) + (1 * 2^0) = 11

让我们看一个示例程序,

样例程序

执行上述程序后,输出将如下所示。 

4

5

9

让我们转到Python中该“从十进制转换为二进制”的最后一位。

样例程序

# Function to convert Binary number 
# to Decimal number 
def binaryToDecimal(n): 
return int(n,2) 
# Driver code 
if __name__ == '__main__': 
print(binaryToDecimal('100')) 
print(binaryToDecimal('101'))
print(binaryToDecimal('1001'))

上面程序的输出将是

4

5

9

这使我们到了在Python中将二进制转换为十进制的文章的结尾。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。