python中二进制_求助:python如何按位解析二进制数据

该篇博客详细介绍了如何在Python中进行二进制数据的处理,包括将二进制字符串转换为十进制数,以及从文件或网络中读取二进制数据并分析其每一位的方法。通过示例代码展示了利用lambda函数和内置bin函数实现二进制数据的解析。
摘要由CSDN通过智能技术生成

展开全部

可以的,二进制是计算机2113内的表示5261方法,处理二进制数据是最基本的能4102力。

如果是二进制1653字符串转十进制:>>> x = '10101010'

>>> int(x, 2)

170

如果是从文件或网络中获取的数据,要知道某一位是0还是1的话,获取的数据可以按字符读取,由于一个字符由8位二进制表示,分别读取1到8位的二进制值就可以了:>>> get_char_bit = lambda char, n: (char >> (8-n)) & 1 # 从高到低分别为第1~8位

>>> data = b'ab' # 在python3中字符串默认是unicode,所以加上b前缀兼容

>>> # 在python3中按字符读取byte字符串是数字,而python2读出来的却是字符,但bytearray是一致的都是数字

>>> data = bytearray(data)

>>> result = []

>>> for char in data:

for i in range(1, 9):

result.append(get_char_bit(char, i))

>>> result

[0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0]

还有一种比较简单的方法是使用内置的bin函数>>> data = bytearray(b'ab')

>>> result = []

>>> for char in data:

result.extend(bin(char)[2:].rjust(8, '0'))

>>> result

['0', '1', '1', '0', '0', '0', '0', '1', '0', '1', '1', '0', '0', '0', '1', '0']

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值