在Python中,整数可以以不同的进制(基数)表示。Python支持以下进制的表示方法:
- 十进制(Decimal):这是最常用的进制,也是默认的进制。你不需要任何前缀来表示十进制数。
decimal_number = 123
- 二进制(Binary):以 0b 或 0B 开头。
binary_number = 0b1111011 # 等于十进制的 123
- 八进制(Octal):以 0o 或 0O 开头。
octal_number = 0o173 # 等于十进制的 123
- 十六进制(Hexadecimal):以 0x 或 0X 开头。
hexadecimal_number = 0x7B # 等于十进制的 123
Python还提供了内置函数来在不同进制之间进行转换:
- int() 函数可以将一个字符串表示的数转换为指定进制的整数。
- bin(), oct(), 和 hex() 函数可以将一个整数转换为二进制、八进制和十六进制的字符串表示。
例如:
# 将一个字符串表示的十六进制数转换为十进制整数
decimal_from_hex = int('7B', 16)
print(decimal_from_hex) # 输出: 123
# 将一个十进制整数转换为二进制字符串
binary_string = bin(123)
print(binary_string) # 输出: 0b1111011
# 将一个十进制整数转换为八进制字符串
octal_string = oct(123)
print(octal_string) # 输出: 0o173
# 将一个十进制整数转换为十六进制字符串
hex_string = hex(123)
print(hex_string) # 输出: 0x7b
注意,bin(), oct(), 和 hex() 返回的字符串总是以 '0b', '0o', 或 '0x' 开头,表示该数是二进制、八进制或十六进制数。如果你想去掉这些前缀,可以使用字符串切片操作:
binary_string_without_prefix = bin(123)[2:]
print(binary_string_without_prefix) # 输出: 1111011
这些进制转换功能在处理文件、网络通信、加密和其他需要不同进制表示的场景时非常有用。