二进制python_利用Python对二进制数据进行按位处理
标签:
最近在用Python做数据包解析,遇到一些要按位处理二进制数据的问题。折腾了一个早上,大概有一点思路,记下来备忘吧。
我要解决的问题是判断一个字节的某几位是否为特定的值,比如判断一个字节的前四位是不是0110。
首先,创建一个文档,里面随便写点东西,保存之后用可以查看二进制数据的软件打开,我用的是notepad++里的HEX-Editor插件。
可以看到字符‘a’对应的二进制数据是61(01100001)。下面对这个字节的数据进行处理。
首先是打开文件,用read()函数读进去一个字节,用16进制进行编码,编码之后会变成一个str类型,这时对它进行转换,int()函数可以将一个str转换成int类型,int()函数的第二个参数代表了进制。mask为11110000,我用mask和要处理的字节进行与,可以得到数据前四位的内容。在这里,01100001的前四位是0110,与完的结果是01100000,即96。
f=open('1.txt','rb')
data=int(f.read(1).encode('hex'),16)
print data
print bin(data)
mask=0b11110000
print mask
res=data&mask
print res
标签:
二进制python_利用Python对二进制数据进行按位处理相关推荐
- python学习音频-机器学习利用Python进行音频数据增强
2019-09-24 机器学习利用Python进行音频数据增强 数据增强通常用于机器学习和深度学习,以便在训练产生大量数据后获得良好的性能. 在这篇文章中,我将展示如何用一些音频增强技术使用输入音频文 ...
- python能处理nc文件吗_利用python如何处理nc数据详解
前言 这两天帮一个朋友处理了些 nc 数据,本以为很简单的事情,没想到里面涉及到了很多的细节和坑,无论是"知难行易"还是"知易行难"都不能充分的说明问题,还是& ...
- python处理nc数据_利用python如何处理nc数据详解
利用python如何处理nc数据详解 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 利用python如何处理nc数据详解.txt ] (友情提示:右键点上行txt ...
- python json 转csv_利用python将json数据转换为csv格式的方法
假设.json文件中存储的数据为: {"type": "Point", "link": "http://www.dianping. ...
- python怎么读取sav格式_利用Python读取外部数据文件
利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...
- python数据预测_利用Python编写一个数据预测工具
利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...
- 利用Python实现二进制转化为十进制数字
Python将二进制变为十进制 直接上代码 参考自莫凡的遗传算法 def translate(pop): #数据转换,二进制转十进制a = pop.dot(2 ** np.arange(10)[::- ...
- mysql数据导入python_利用python将mysql中的数据导入excel
原博文 2017-06-29 13:29 − Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 如下分别利用xlwt和openpyx ...
- 通达信行情数据获取--python_利用 Python 获取余额宝历史收益数据
最近想做一个关于用一些指数基金与余额宝组成的简单 风险-无风险 投资组合的实验计算,发现通达信之类的行情软件并没有提供完整的余额宝收益信息,如通达信仅有年化收益率的数据,并没有万份收益的数据.因此考虑 ...
最新文章
- 功能实现了软件就做好了吗?
- 算法设计与分析课程的时间空间复杂度
- EMC NetWorker恢复oracle指南
- Python报错:UnicodeDecodeError:‘ascii‘ codec can‘t decode byte 0xe8 in position
- 普通程序猿三步升级成高级程序员
- Oracle教程之分析Oracle索引扫描四大类
- SQL Server中TEXT类型操作
- 欢迎界面java_Linux命令行欢迎界面美化
- vim编辑器设置行号、缩进、tab键
- QQ截图自动保存工具分享
- 防止自己骄傲,它是你一生的敌人。
- keil+flymcu+CubeMX开发STM32F407
- Python查找字符串中的所有汉字
- 计算机中丢失vulkan-1.dll,vulkan-1.dll
- matlab 带积分的方程,在Matlab中实现积分方程的迭代解
- 一文读懂javascript深拷贝与浅拷贝
- 编程之类的文案_少儿编程宣传推广文案
- (随时增加)linux编译错误集锦
- [转]如何学习《离散数学》?
- word 插入图片显示不全
热门文章
- 大剑无锋之拦截器和过滤器的区别【面试推荐】
- Spark _05Standalone模式两种提交任务方式
- ZooKeeper实战(一):ZooKeeper原理,详细安装步骤,基本命令,节点间通信原理
- Redis实战(三):Redis的List、Set、Hash、sorted_set、skip list
- 【Java】HashMap的数据结构、源码解析 - 公开课笔记
- 【EasyUI tree】Python 异步菜单树的实现
- dart系列之:dart语言中的函数
- web worker的介绍和使用
- java安全编码指南之:拒绝Denial of Service
- mysql 查看端口_新手连接MySQL数据库,再也不怕连不上了