Python进制转换与二进制文件处理实战

山间有风
山间有风
发布时间:2026-10-13 | 4人浏览过
原创

本文详解Python中实现不同进制数转换的内置函数与模块。重点介绍binascii模块处理二进制文件转十六进制的用法,以及bin、oct、hex、int等内置函数在进制间转换的应用。同时提供读取图片二进制内容的完整示例代码,帮助开发者掌握底层数据处理技巧。

Python进制转换概述

本文主要介绍如何利用Python内置模块与函数实现不同进制数值之间的转换。此外,Python在读取纯二进制文件内容方面也提供了便捷支持,适合需要处理底层数据格式的开发者参考。

binascii模块应用

首先介绍binascii模块的功能。

该模块包含将二进制数值转换为十六进制字符串的函数,同时也支持反向转换。需要注意的是,输入参数binary_value应为二进制数值对象,而非字符串或整型数值1010。


binascii.b2a_hex(binary_value) ##binary_value 一般读二进制文件可以得到 
 
>>'89' <type str> 

内置进制转换函数

Python自带的内置函数可用于进制转换: bin(num) 函数用于将十进制数值转换为二进制字符串。


bin(10) 
 
>> '0b1010' <type, str> 

oct(num) 函数用于将十进制数值转换为八进制字符串。


oct(10) 
 
>>'012' <type, str> 

hex(num) 函数用于将十进制数值转换为十六进制字符串。


hex(20) 
 
>>'0x14' <type, str> 

int(str, base) 函数用于将其他进制的字符串转换为十进制数值。其中base参数指定str所属的进制,例如base为2时表示str是二进制字符串。若未指定base,默认按十进制处理。


int('20') 
>>20 <type, int> 
int('10', 2) 
>>2 <type, int> 
int('10', 8) 
>>8 <type, int> 
int('20', 10) 
>>20 <type, int> 
int('20',16) 
>>32 <type, int> 

字符与数字互转

字符与数字互转的相关函数如下: chr(int) 用于将整型数值转换为对应的字符。


chr(65) 
 
>>'A', <type, str> 

ord(chr) 用于将字符转换为对应的整型数值。


ord('a') 
 
>>97, <type, int> 

二进制文件读取示例

最后,提供一个读取图片文件二进制内容的完整示例代码。


#!/usr/bin/env python 
#encoding: utf-8 
import binascii 
 
fh = open(r'C:\Temp\img\2012517165556.png', 'rb') 
a = fh.read() 
#print 'raw: ',`a`,type(a) 
hexstr = binascii.b2a_hex(a) #得到一个16进制的数 
#print 'hex: ',hexstr, type(hexstr) 
bsstr = bin(int(hexstr,16))[2:] 
print 'bin: ',bsstr, type(bsstr)

运行上述代码可产生1010刷屏的视觉效果,具有一定的黑客帝国风格。

至此,关于使用Python内置模块与函数进行不同进制数转换的介绍已完成。如需了解更多Python进制转换相关内容,建议搜索本站历史文章或继续阅读后续系列教程,感谢支持。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表