Python 提供了多种方法来处理不同进制的数据,包括二进制、八进制、十进制和十六进制。以下是一些常见的操作方式:
1. 进制转换
Python 内置了一些函数,可以方便地在不同进制之间进行转换。
1.1 从不同进制转换为十进制
- 二进制:使用
int
函数并指定基数为 2。 - 八进制:使用
int
函数并指定基数为 8。 - 十六进制:使用
int
函数并指定基数为 16。
binary_num = "1010"
octal_num = "12"
hex_num = "A"decimal_from_binary = int(binary_num, 2)
decimal_from_octal = int(octal_num, 8)
decimal_from_hex = int(hex_num, 16)print(decimal_from_binary) # 输出 10
print(decimal_from_octal) # 输出 10
print(decimal_from_hex) # 输出 10
1.2 从十进制转换为其他进制
- 二进制:使用
bin
函数。 - 八进制:使用
oct
函数。 - 十六进制:使用
hex
函数。
decimal_num = 10binary_str = bin(decimal_num)
octal_str = oct(decimal_num)
hex_str = hex(decimal_num)print(binary_str) # 输出 '0b1010'
print(octal_str) # 输出 '0o12'
print(hex_str) # 输出 '0xa'
2. 处理不同进制的字符串表示
使用 str.format
或 f-string 来格式化输出。
decimal_num = 255# 使用 format 函数
binary_str = "{:b}".format(decimal_num)
octal_str = "{:o}".format(decimal_num)
hex_str = "{:x}".format(decimal_num)print(binary_str) # 输出 '11111111'
print(octal_str) # 输出 '377'
print(hex_str) # 输出 'ff'# 使用 f-string
binary_str = f"{decimal_num:b}"
octal_str = f"{decimal_num:o}"
hex_str = f"{decimal_num:x}"print(binary_str) # 输出 '11111111'
print(octal_str) # 输出 '377'
print(hex_str) # 输出 'ff'
3. 处理用户输入的不同进制数据
可以使用 input
函数读取用户输入,然后根据需要转换成相应的进制。
# 读取二进制输入
binary_input = input("Enter a binary number: ")
decimal_value = int(binary_input, 2)
print(f"Decimal value: {decimal_value}")
4. 处理带有前缀的进制数据
在Python中,以 0b
、0o
和 0x
开头的字符串分别表示二进制、八进制和十六进制的数值,可以直接使用 int
函数进行转换。
bin_with_prefix = "0b1010"
oct_with_prefix = "0o12"
hex_with_prefix = "0xA"decimal_from_bin = int(bin_with_prefix, 2)
decimal_from_oct = int(oct_with_prefix, 8)
decimal_from_hex = int(hex_with_prefix, 16)print(decimal_from_bin) # 输出 10
print(decimal_from_oct) # 输出 10
print(decimal_from_hex) # 输出 10