在Python中,如果使用int()函数将一个字符串转为整数时,如果字符串中存在“八进制表示”,则Python会自动识别并按照八进制转换。因此,在对八进制数进行转换前,需要先将其转为十进制数,然后再转为二进制数。
代码示例:
def octal_to_decimal(octal):
decimal = 0
power = 0
while octal > 0:
decimal += ((octal % 10) * (8 ** power))
octal //= 10
power += 1
return decimal
def decimal_to_binary(decimal):
binary = ""
while decimal > 0:
binary = str(decimal % 2) + binary
decimal //= 2
return binary
octal_num = "57"
decimal_num = octal_to_decimal(int(octal_num))
binary_num = decimal_to_binary(decimal_num)
print("八进制数", octal_num, "的十进制表示为:", decimal_num)
print("十进制数", decimal_num, "的二进制表示为:", binary_num)
运行结果:
八进制数 57 的十进制表示为: 47
十进制数 47 的二进制表示为: 101111