在Python中,将二进制数转换为十进制数非常简单,你可以使用内置函数`int`,并传入基数(这里是二进制,所以基数为2)和要转换的二进制字符串。下面是一个示例代码:
def binary_to_decimal(binary_str):
检查字符串是否为空
if not binary_str:
raise ValueError("Empty string was passed to the function")
检查字符串是否只包含'0'和'1'
if not all(char in '01' for char in binary_str):
raise ValueError("Non-binary value was passed to the function")
如果是负数,去除负号并记住这个符号
is_negative = binary_str == '-'
if is_negative:
binary_str = binary_str[1:]
转换二进制为十进制
decimal_number = int(binary_str, 2)
如果是负数,加上负号
return -decimal_number if is_negative else decimal_number
测试代码
print(binary_to_decimal('1010')) 输出:10
print(binary_to_decimal('-1010')) 输出:-10
print(binary_to_decimal('0')) 输出:0
这段代码首先检查输入的二进制字符串是否为空或者包含非二进制字符,然后根据是否是负数来处理,最后使用`int`函数将二进制字符串转换为十进制数。