用python实现二进制转十进制,输入类型含整数,小数,负数,且不适用python内置函数
时间: 2024-05-05 07:17:38 浏览: 51
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
好的,我可以回答您的问题。
以下是Python代码实现二进制转十进制的功能,包括整数、小数和负数:
```python
def binaryToDecimal(num):
decimal = 0
is_negative = False
if num[0] == '-':
is_negative = True
num = num[1:]
if '.' in num:
integral, fractional = num.split('.')
for digit in integral:
decimal = decimal * 2 + int(digit)
for digit in fractional:
decimal = decimal / 2 + int(digit)
else:
for digit in num:
decimal = decimal * 2 + int(digit)
return -decimal if is_negative else decimal
```
示例输入:
```
binaryToDecimal('1101') # 13
binaryToDecimal('1011.011') # 11.375
binaryToDecimal('-111.01') # -7.25
```
输出:
```
13
11.375
-7.25
```
请注意,在程序中应使用异常处理和错误检查,以确保输入值是二进制数。
阅读全文