【Python入门与进阶】Python如何处理不同进制的数据

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 = 10

binary_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中,以 0b0o0x 开头的字符串分别表示二进制、八进制和十六进制的数值,可以直接使用 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
  • 20
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值