python十进制小数转二进制小数,从零开始学Python|如何在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中将二进制转换为十进制的文章的结尾。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以使用内置函数bin()将十进制转换二进制数,但是它只能转换整数部分,无法转换小数部分。如果要将十进制数的小数部分转换二进制数,可以使用以下方法: 1. 将小数部分乘以2,取整数部分作为二进制数的一位,再将小数部分保留下来,重复这个过程直到小数部分为0或达到所需的精度。 例如,将0.625转换二进制数: 0.625 * 2 = 1.25,整数部分为1,小数部分为0.25 0.25 * 2 = 0.5,整数部分为0,小数部分为0.5 0.5 * 2 = 1.0,整数部分为1,小数部分为0 因此,0.625的二进制数为0.101。 2. 可以使用Python的format()函数将小数部分转换二进制数的字符串形式。 例如,将0.625转换二进制数: bin_str = '' x = 0.625 while x != 0: x *= 2 if x >= 1: bin_str += '1' x -= 1 else: bin_str += '0' print('0.' + bin_str) 输出结果为:0.101 ### 回答2: Python数字转换模块中的函数decimal可以实现十进制转换二进制,同时保留小数部分。 使用decimal模块的Decimal类可以将十进制转换二进制,并设置小数点后的位数。 要使用decimal模块,需要首先导入模块: ```python from decimal import * ``` 然后,使用Decimal类将十进制转换二进制数码,并设置小数点位数: ```python getcontext().prec = 10 # 设置小数点后位数 n = Decimal('12.5') bin = '{0:b}'.format(int(n)) # 整数部分化为二进制 decimal_places = Decimal(str(n)) % 1 # 获取小数部分 ``` 其中,getcontext().prec用来设置小数点后的位数,n为需要转换的数,bin为整数部分化为二进制后的结果,Decimal(str(n)) % 1用来获取小数部分。 最后将整数部分和小数部分连接起来,即可得到十进制数的二进制表示: ```python result = bin + '.' while decimal_places != 0: decimal_places *= 2 if decimal_places >= 1: result += '1' decimal_places -= 1 else: result += '0' print(result) ``` 例如,将十进制数12.5转换二进制小数点后设置保留10位,则输出结果为1100.1。 需要注意的是,由于二进制表示法精度限制,对于某些十进制值,转换结果可能存在不精确的情况,因此在需要较高精度的应用中,应采用其他更为准确的数值运算方法。 ### 回答3: Python中将十进制化为二进制小数部分可以使用两种方法,分别是自写函数和使用内置函数。 方法一:自写函数 自写函数主要是通过将小数部分不断乘2,然后将整数部分取出,直到小数部分为0或者达到要求的小数位数为止。 下面是一个示例代码: ```python def decimal_to_binary(decimal_number, num_of_bits): binary_number = "0." for i in range(num_of_bits): decimal_number *= 2 if decimal_number < 1: binary_number += "0" else: binary_number += "1" decimal_number -= 1 if decimal_number == 0: break return binary_number ``` 其中,decimal_number为要化的十进制小数,num_of_bits为要化成的二进制小数的位数。 示例输入:decimal_to_binary(0.2, 6) 示例输出:'0.001100' 方法二:使用内置函数 使用内置函数主要是通过使用bin()函数将十进制小数化为二进制整数,然后将整数位和小数位拼接起来。 下面是一个示例代码: ```python def decimal_to_binary(decimal_number, num_of_bits): binary_number = bin(int(decimal_number * (2 ** num_of_bits)))[2:] binary_number = "0." + binary_number.rjust(num_of_bits, "0") return binary_number ``` 其中,decimal_number为要化的十进制小数,num_of_bits为要化成的二进制小数的位数。 示例输入:decimal_to_binary(0.2, 6) 示例输出:'0.001100'

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值