python常用的十进制、16进制之间的转换

本文介绍如何在不同进制之间进行整数转换,包括十进制到十六进制、八进制、二进制的转换方法。同时也涵盖了如何将不同进制的字符串转换为对应的整数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整数之间的进制转换:

hex(16)     # 10进制转16进制
oct(8)      # 10进制转8进制
bin(8)      # 10进制转2进制

字符串转整数:

int('10')       # 字符串转换成10进制整数
int('10',16)    # 字符串转换成16进制整数
int('0x10',16)  # 字符串转换成16进制整数
int('10',8)     # 字符串转换成8进制整数
int('010',8)    # 字符串转换成8进制整数
int('10',2)     # 字符串转换成2进制整数
<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'(正常) ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值