Python进制转换与二进制文件处理实战
本文详解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进制转换相关内容,建议搜索本站历史文章或继续阅读后续系列教程,感谢支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













