标签:

最近在用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对二进制数据进行按位处理相关推荐

  1. python学习音频-机器学习利用Python进行音频数据增强

    2019-09-24 机器学习利用Python进行音频数据增强 数据增强通常用于机器学习和深度学习,以便在训练产生大量数据后获得良好的性能. 在这篇文章中,我将展示如何用一些音频增强技术使用输入音频文 ...

  2. python能处理nc文件吗_利用python如何处理nc数据详解

    前言 这两天帮一个朋友处理了些 nc 数据,本以为很简单的事情,没想到里面涉及到了很多的细节和坑,无论是"知难行易"还是"知易行难"都不能充分的说明问题,还是& ...

  3. python处理nc数据_利用python如何处理nc数据详解

    利用python如何处理nc数据详解 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  利用python如何处理nc数据详解.txt ] (友情提示:右键点上行txt ...

  4. python json 转csv_利用python将json数据转换为csv格式的方法

    假设.json文件中存储的数据为: {"type": "Point", "link": "http://www.dianping. ...

  5. python怎么读取sav格式_利用Python读取外部数据文件

    利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...

  6. python数据预测_利用Python编写一个数据预测工具

    利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...

  7. 利用Python实现二进制转化为十进制数字

    Python将二进制变为十进制 直接上代码 参考自莫凡的遗传算法 def translate(pop): #数据转换,二进制转十进制a = pop.dot(2 ** np.arange(10)[::- ...

  8. mysql数据导入python_利用python将mysql中的数据导入excel

    原博文 2017-06-29 13:29 − Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 如下分别利用xlwt和openpyx ...

  9. 通达信行情数据获取--python_利用 Python 获取余额宝历史收益数据

    最近想做一个关于用一些指数基金与余额宝组成的简单 风险-无风险 投资组合的实验计算,发现通达信之类的行情软件并没有提供完整的余额宝收益信息,如通达信仅有年化收益率的数据,并没有万份收益的数据.因此考虑 ...

最新文章

  1. 功能实现了软件就做好了吗?
  2. 算法设计与分析课程的时间空间复杂度
  3. EMC NetWorker恢复oracle指南
  4. Python报错:UnicodeDecodeError:‘ascii‘ codec can‘t decode byte 0xe8 in position
  5. 普通程序猿三步升级成高级程序员
  6. Oracle教程之分析Oracle索引扫描四大类
  7. SQL Server中TEXT类型操作
  8. 欢迎界面java_Linux命令行欢迎界面美化
  9. vim编辑器设置行号、缩进、tab键
  10. QQ截图自动保存工具分享
  11. 防止自己骄傲,它是你一生的敌人。
  12. keil+flymcu+CubeMX开发STM32F407
  13. Python查找字符串中的所有汉字
  14. 计算机中丢失vulkan-1.dll,vulkan-1.dll
  15. matlab 带积分的方程,在Matlab中实现积分方程的迭代解
  16. 一文读懂javascript深拷贝与浅拷贝
  17. 编程之类的文案_少儿编程宣传推广文案
  18. (随时增加)linux编译错误集锦
  19. [转]如何学习《离散数学》?
  20. word 插入图片显示不全

热门文章

  1. 大剑无锋之拦截器和过滤器的区别【面试推荐】
  2. Spark _05Standalone模式两种提交任务方式
  3. ZooKeeper实战(一):ZooKeeper原理,详细安装步骤,基本命令,节点间通信原理
  4. Redis实战(三):Redis的List、Set、Hash、sorted_set、skip list
  5. 【Java】HashMap的数据结构、源码解析 - 公开课笔记
  6. 【EasyUI tree】Python 异步菜单树的实现
  7. dart系列之:dart语言中的函数
  8. web worker的介绍和使用
  9. java安全编码指南之:拒绝Denial of Service
  10. mysql 查看端口_新手连接MySQL数据库,再也不怕连不上了