Python 进制转换详解
在计算机科学中,进制是一种表示数值的方式。我们常见的十进制是以 10 为基数,使用数字 0-9 进行表示。然而,计算机内部使用的是二进制,即以 2 为基数,使用数字 0 和 1 进行表示。在编程中,我们经常需要进行不同进制之间的转换。Python 提供了简便的方法来进行进制转换,本文将详细介绍 Python 中的进制转换方法。
一、十进制转换为二进制
在 Python 中,可以使用 bin()
函数将十进制数转换为二进制数。bin()
函数接受一个十进制整数作为参数,并返回一个以 “0b” 开头的二进制字符串。
下面是一个示例代码,将十进制数 10 转换为二进制数并打印结果:
decimal_number = 10
binary_number = bin(decimal_number)
print(binary_number)
运行结果:
0b1010
可以看到,十进制数 10 被成功转换为了二进制数 1010。
二、二进制转换为十进制
与十进制转换为二进制相反,Python 中可以使用 int()
函数将二进制数转换为十进制数。int()
函数接受一个二进制字符串和一个可选的参数,该参数指定了字符串的基数。对于二进制数,基数应设置为 2。
下面是一个示例代码,将二进制数 “0b1010” 转换为十进制数并打印结果:
binary_number = "0b1010"
decimal_number = int(binary_number, 2)
print(decimal_number)
运行结果:
10
可以看到,二进制数 “0b1010” 被成功转换为了十进制数 10。
三、十进制转换为八进制
在 Python 中,可以使用 oct()
函数将十进制数转换为八进制数。oct()
函数接受一个十进制整数作为参数,并返回一个以 “0o” 开头的八进制字符串。
下面是一个示例代码,将十进制数 10 转换为八进制数并打印结果:
decimal_number = 10
octal_number = oct(decimal_number)
print(octal_number)
运行结果:
0o12
可以看到,十进制数 10 被成功转换为了八进制数 12。
四、八进制转换为十进制
与十进制转换为八进制相反,Python 中可以使用 int()
函数将八进制数转换为十进制数。int()
函数接受一个八进制字符串和一个可选的参数,该参数指定了字符串的基数。对于八进制数,基数应设置为 8。
下面是一个示例代码,将八进制数 “0o12” 转换为十进制数并打印结果:
octal_number = "0o12"
decimal_number = int(octal_number, 8)
print(decimal_number)
运行结果:
10
可以看到,八进制数 “0o12” 被成功转换为了十进制数 10。
五、十进制转换为十六进制
在 Python 中,可以使用 hex()
函数将十进制数转换为十六进制数。hex()
函数接受一个十进制整数作为参数,并返回一个以 “0x” 开头的十六进制字符串。
下面是一个示例代码,将十进制数 10 转换为十六进制数并打印结果:
decimal_number = 10
hexadecimal_number = hex(decimal_number)
print(hexadecimal_number)
运行结果:
0xa
可以看到,十进制数 10 被成功转换为了十六进制数 a。
六、十六进制转换为十进制
与十进制转换为十六进制相反,Python 中可以使用 int()
函数将十六进制数转换为十进制数。int()
函数接受一个十六进制字符串和一个可选的参数,该参数指定了字符串的基数。对于十六进制数,基数应设置为 16。
下面是一个示例代码,将十六进制数 “0xa” 转换为十进制数并打印结果:
hexadecimal_number = "0xa"
decimal_number = int(hexadecimal_number, 16)
print(decimal_number)
运行结果:
10
可以看到,十六进制数 “0xa” 被成功转换为了十进制数 10。
七、进制之间的相互转换
除了以上介绍的进制转换方法外,还可以使用字符串的方法来进行进制转换。Python 中的字符串可以使用 str()
函数将其它进制的数字转换为以字符串形式表示的数字。
下面是一个示例代码,将十进制数 10 转换为二进制、八进制和十六进制,并打印结果:
decimal_number = 10
binary_number = str(bin(decimal_number))[2:]
octal_number = str(oct(decimal_number))[2:]
hexadecimal_number = str(hex(decimal_number))[2:]
print(binary_number)
print(octal_number)
print(hexadecimal_number)
运行结果:
1010
12
a
可以看到,十进制数 10 被成功转换为了二进制数 1010、八进制数 12 和十六进制数 a。
总结
本文介绍了 Python 中的进制转换方法,包括十进制转换为二进制、二进制转换为十进制、十进制转换为八进制、八进制转换为十进制、十进制转换为十六进制以及十六进制转换为十进制。使用这些方法,我们可以方便地在不同进制之间进行转换,为编程提供了更多的灵活性和功能。