news 2026/6/13 12:53:41

python的整数与十六进制转换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python的整数与十六进制转换

想要掌握 Python 中十进制整数十六进制之间的相互转换方法,我会从基础转换、格式控制、实用场景三个维度,用简单易懂的示例帮你彻底搞懂这个知识点。

一、核心转换方法

1. 十进制整数 → 十六进制

Python 提供两种核心方式:hex()内置函数(快速转换)、格式化字符串(灵活控制格式)。

方法 1:hex()函数(最基础)

hex()会返回以0x为前缀的十六进制字符串(小写),语法:hex(十进制整数)

python

运行

# 示例1:正整数转换 num = 255 hex_str = hex(num) print(f"十进制 {num} → 十六进制:{hex_str}") # 输出:十进制 255 → 十六进制:0xff # 示例2:负整数转换 num = -100 hex_str = hex(num) print(f"十进制 {num} → 十六进制:{hex_str}") # 输出:十进制 -100 → 十六进制:-0x64
方法 2:格式化字符串(灵活控制格式)

通过format()或 f-string 可以自定义十六进制格式(是否带前缀、大小写),更实用。

python

num = 1234 # 格式1:带0x前缀(小写) hex1 = f"{num:#x}" print(hex1) # 输出:0x4d2 # 格式2:不带前缀(小写) hex2 = f"{num:x}" print(hex2) # 输出:4d2 # 格式3:带0x前缀(大写) hex3 = f"{num:#X}" print(hex3) # 输出:0X4D2 # 格式4:不带前缀(大写) hex4 = f"{num:X}" print(hex4) # 输出:4D2 # 格式5:固定位数(不足补0,比如补到8位) hex5 = f"{num:08x}" print(hex5) # 输出:000004d2

2. 十六进制 → 十进制整数

核心用int()函数,第二个参数指定进制为 16,语法:int(十六进制字符串, 16)注意:十六进制字符串可以带0x/0X前缀,也可以不带,int()都能识别。

python

# 示例1:带0x前缀的十六进制字符串转换 hex_str1 = "0xff" num1 = int(hex_str1, 16) print(f"十六进制 {hex_str1} → 十进制:{num1}") # 输出:十六进制 0xff → 十进制:255 # 示例2:不带前缀的十六进制字符串转换 hex_str2 = "4d2" num2 = int(hex_str2, 16) print(f"十六进制 {hex_str2} → 十进制:{num2}") # 输出:十六进制 4d2 → 十进制:1234 # 示例3:大写十六进制字符串转换(不影响) hex_str3 = "0X4D2" num3 = int(hex_str3, 16) print(f"十六进制 {hex_str3} → 十进制:{num3}") # 输出:十六进制 0X4D2 → 十进制:1234 # 示例4:处理负数(先转正数再加负号) hex_str4 = "-0x64" num4 = -int(hex_str4.strip("-"), 16) print(f"十六进制 {hex_str4} → 十进制:{num4}") # 输出:十六进制 -0x64 → 十进制:-100

二、实用场景示例

场景 1:批量转换(列表中的整数 / 十六进制)

python

# 批量将十进制列表转十六进制(不带前缀,大写) dec_list = [10, 20, 30, 40] hex_list = [f"{x:X}" for x in dec_list] print("十进制列表转十六进制:", hex_list) # 输出:['A', '14', '1E', '28'] # 批量将十六进制列表转十进制 hex_list2 = ["0xa", "14", "1e", "28"] dec_list2 = [int(x, 16) for x in hex_list2] print("十六进制列表转十进制:", dec_list2) # 输出:[10, 20, 30, 40]

场景 2:去掉十六进制字符串的前缀

python

hex_str = "0x4d2" # 方法1:切片(去掉前2个字符) hex_no_prefix = hex_str[2:] print(hex_no_prefix) # 输出:4d2 # 方法2:用lstrip()(更通用,兼容0X前缀) hex_no_prefix2 = hex_str.lstrip("0x").lstrip("0X") print(hex_no_prefix2) # 输出:4d2

场景 3:十六进制与字节串(bytes)互转(拓展)

python

# 十进制整数 → 十六进制字节串(比如255 → b'\xff') num = 255 byte_data = num.to_bytes(1, byteorder='big') # 1表示1个字节,big表示大端 print(byte_data) # 输出:b'\xff' # 十六进制字节串 → 十进制整数 byte_data2 = b'\x4d\x02' num2 = int.from_bytes(byte_data2, byteorder='big') print(num2) # 输出:19714(对应十六进制0x4d02)

总结

  1. 整数转十六进制hex()快速转换(带 0x 小写前缀),格式化字符串(f"{num:x/X}")可灵活控制前缀、大小写、位数;
  2. 十六进制转整数:核心用int(hex_str, 16),兼容带 / 不带 0x 前缀、大小写字符串;
  3. 实用技巧:批量转换用列表推导式,固定位数用08x这类格式,处理负数需先转正数再加负号。

这些方法覆盖了日常开发中绝大多数整数与十六进制转换的场景,新手只需记住hex()int(...,16)和格式化字符串这三个核心工具即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 15:30:13

python读取txt文件并画图

你希望用 Python 读取 TXT 文本文件中的数据并绘制可视化图表,我会针对新手最常遇到的 3 种 TXT 数据格式(单行数值、多列分隔数据、带表头表格数据),提供完整可直接运行的代码,同时拆解关键步骤和避坑要点&#xff0c…

作者头像 李华
网站建设 2026/6/10 14:08:50

Python读取txt某几列绘图的方法

你希望学会 Python 读取 TXT 文件中指定的某几列数据并绘制可视化图表的方法,核心是精准筛选需要的列(而非全部列)。我会针对「无表头的分隔型 TXT」和「带表头的表格型 TXT」两种最常见场景,提供可直接运行的代码,并重…

作者头像 李华
网站建设 2026/6/13 2:44:48

从零构建专属AutoGLM模型,手把手教你完成Open-AutoGLM二次开发全流程

第一章:从零认识Open-AutoGLM架构与生态Open-AutoGLM 是一个开源的自动化生成语言模型框架,旨在降低大模型应用开发门槛,提升从数据准备到模型部署的全流程效率。该架构融合了自动微分、动态图优化与模块化组件设计,支持多模态输入…

作者头像 李华
网站建设 2026/6/10 11:54:02

Sandboxie性能调优实战:3个场景解决90%卡顿问题

Sandboxie性能调优实战:3个场景解决90%卡顿问题 【免费下载链接】Sandboxie Sandboxie Plus & Classic 项目地址: https://gitcode.com/gh_mirrors/sa/Sandboxie 你是否经历过在Sandboxie中打开浏览器需要等待数十秒的煎熬?或者发现沙箱目录莫…

作者头像 李华
网站建设 2026/6/10 11:55:08

FanFicFare终极指南:3步搞定同人小说电子书制作

FanFicFare终极指南:3步搞定同人小说电子书制作 【免费下载链接】FanFicFare FanFicFare is a tool for making eBooks from stories on fanfiction and other web sites. 项目地址: https://gitcode.com/gh_mirrors/fa/FanFicFare 还在为收藏喜爱的同人小说…

作者头像 李华
网站建设 2026/6/10 11:58:32

vnpy多平台部署实战:Windows、Linux、Mac一站式量化交易环境搭建指南

vnpy多平台部署实战:Windows、Linux、Mac一站式量化交易环境搭建指南 【免费下载链接】vnpy 基于Python的开源量化交易平台开发框架 项目地址: https://gitcode.com/vnpy/vnpy vnpy作为业界领先的Python开源量化交易框架,支持在Windows、Linux和M…

作者头像 李华