Python 2、8、10、16进制间的转换

本文详细介绍了不同进制之间的转换方法,包括二进制到八进制、十进制及十六进制的转换,以及八进制、十进制和十六进制相互之间的转换过程。

进制转换一直是初学者所头疼的,下面就简单的列出各进制之间都是以什么方式转换的。

# print('2-->8: ', oct(int('0b1010', 2)))     # 2-10-8
# print('2-->10:', int('0b1010', 2))          # 2-10
# print('2-->16:', hex(int('0b1010', 2)))     # 2-10-16
# print('8-->2:', bin(int('0o12', 8)))        # 8-10-2
# print('8-->10:', int('0o12', 8))            # 8-10
# print('8-->16:', hex(int('0o12', 8)))       # 8-10-16
# print('10-->2', bin(10))                    # 10-2
# print('10-->8', oct(10))                    # 10-2
# print('10-->16', hex(10))                   # 10-16
# print('16-->2:', bin(int('0xa', 16)))       # 16-10-2
# print('16-->8:', oct(int('0xa', 16)))       # 16-10-8
# print('16-->10:', int('0xa', 16))           # 16-10
'''
    2-->8:  0o12
    2-->10: 10
    2-->16: 0xa
    8-->2: 0b1010
    8-->10: 10
    8-->16: 0xa
    10-->2 0b1010
    10-->8 0o12
    10-->16 0xa
    16-->2: 0b1010
    16-->8: 0o12
    16-->10: 10
'''

  

转载于:https://www.cnblogs.com/Neeo/p/9188993.html

<think>我们使用Python内置函数进行进制转换: 1. 进制进制:bin() 2. 进制十六进制:hex() 3. 进制进制:int(bin_string, 2) 4. 十六进制进制:int(hex_string, 16) 5. 进制十六进制:先转进制再转十六进制,或者使用hex(int(bin_string, 2)) 6. 十六进制进制:先转进制再转进制,或者使用bin(int(hex_string, 16)) 注意:bin()和hex()返回的是字符串,并且分别带有前缀'0b'和'0x',转换时可能需要去掉前缀。 下面给出具体示例:</think>### Python进制转换详解 Python提供了内置函数实现进制进制十六进制之间的相互转换。以下是具体方法及示例: --- #### **1. 进制进制** - **函数**:`bin()` - **输出格式**:字符串,前缀 `0b` 表示进制 - **示例**: ```python num = 10 binary = bin(num) # 输出 '0b1010' print(binary[2:]) # 去除前缀:'1010' ``` --- #### **2. 进制十六进制** - **函数**:`hex()` - **输出格式**:字符串,前缀 `0x` 表示十六进制 - **示例**: ```python num = 255 hex_value = hex(num) # 输出 '0xff' print(hex_value[2:]) # 去除前缀:'ff' ``` --- #### **3. 进制进制** - **函数**:`int(进制字符串, 2)` - **关键**:需去除 `0b` 前缀,或直接使用进制字符串 - **示例**: ```python binary_str = "1010" decimal = int(binary_str, 2) # 输出 10 # 带前缀的转换 binary_with_prefix = "0b1010" decimal = int(binary_with_prefix, 0) # 自动识别进制 ``` --- #### **4. 十六进制进制** - **函数**:`int(十六进制字符串, 16)` - **关键**:需去除 `0x` 前缀,或直接使用十六进制字符串 - **示例**: ```python hex_str = "ff" decimal = int(hex_str, 16) # 输出 255 # 带前缀的转换 hex_with_prefix = "0xff" decimal = int(hex_with_prefix, 0) # 自动识别进制 ``` --- #### **5. 进制十六进制** 通过进制中转: ```python # 进制十六进制 binary = "1101" hex_value = hex(int(binary, 2)) # 输出 '0xd' # 十六进制进制 hex_str = "d" binary = bin(int(hex_str, 16)) # 输出 '0b1101' ``` --- #### **6. 格式化输出(无前缀)** 使用 `format()` 函数控制格式: ```python num = 15 # 进制格式化 print(format(num, 'b')) # 输出 '1111' # 十六进制格式化(小写) print(format(num, 'x')) # 输出 'f' # 十六进制格式化(大写) print(format(num, 'X')) # 输出 'F' ``` --- ### **应用场景示例** **案例**:解析硬件寄存器值(16进制)→ 计算实际状态(2进制) ```python # 从传感器读取16进制值 "0x1F" register_hex = "0x1F" # 转为进制 decimal_value = int(register_hex, 0) # 31 # 转为进制分析位状态 binary_str = bin(decimal_value)[2:].zfill(8) # '00011111' bit7 = binary_str[0] # 最高位状态: '0'(正常) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值