python bitarray_Python的 bitarray 库测试。。

标签:

# -*- coding:utf-8 -*-

import sys

import time

import time

from collections import namedtuple

t = [

("u32","n1"), #格式, 变量名称

("u6","n2"),

("u4","n3"),

( "u3","n4"),

("u3","n5"),

("u16","n6"),

("u7","n7"),

("u3","n8"),

("u6","n9"),

]

import bitarray

tmp_bytes = b"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10"

a = bitarray.bitarray(endian=‘little‘)

a.frombytes(tmp_bytes )

pos = 0

import re

num_re = re.compile("\d+")

begin = time.time()

for i in range(10000):

result = {}

for fmt, name in t:

bit_len = int( num_re.search(fmt).group() )

value = int.from_bytes( a[pos:pos+bit_len].tobytes() ,byteorder="little")

result[name] = value

pos += bit_len

last = time.time()-begin

print (last)

print (result)

标签:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个使用 Pythonbitarray 模块的示例: ```python from bitarray import bitarray # 创建一个包含8个位的空bitarray ba = bitarray(8) # 将第5位设置为1 ba[4] = 1 # 将第8位设置为1 ba[7] = 1 # 打印bitarray print(ba) # 将bitarray转换为整数并打印 print(int(ba.to01(), 2)) ``` 这个示例创建了一个包含8个位的空 bitarray,并将第5位和第8位设置为1。然后,它打印了 bitarray,以及将 bitarray 转换为整数并打印。输出应该如下所示: ``` bitarray('00100001') 33 ``` 这个示例展示了如何使用 bitarray 模块创建和操作 bitarray,以及如何将 bitarray 转换为整数。 ### 回答2: 以下是一个使用Python bitarray的示例: ```python from bitarray import bitarray # 创建一个长度为8的bitarray bit_array = bitarray(8) # 给bitarray赋值 bit_array[0] = True bit_array[1] = False bit_array[2] = True bit_array[3] = False bit_array[4] = True bit_array[5] = False bit_array[6] = True bit_array[7] = False # 输出bitarray的值 print(bit_array) # 输出:bitarray('10101010') # 获取bitarray的长度 print(len(bit_array)) # 输出:8 # 将bitarray转换为整数 num = int(bit_array.to01(), 2) print(num) # 输出:170 # 创建一个长度为16的bitarray bit_array2 = bitarray(16) bit_array2.setall(False) # 将所有位设置为False # 输出bitarray2的值 print(bit_array2) # 输出:bitarray('0000000000000000') # 将整数转换为bitarray num2 = 255 bit_array3 = bitarray(bin(num2)[2:].zfill(8)) print(bit_array3) # 输出:bitarray('11111111') ``` 以上示例演示了使用Pythonbitarray创建、操作和转换bitarray的几个常用操作。 ### 回答3: 以下是一个使用Python中的bitarray的示例: import bitarray # 创建一个长度为8的bitarray ba = bitarray.bitarray(8) # 将第3、4和7位设置为True(1) ba[2] = True ba[3] = True ba[6] = True # 输出bitarray的值 print(ba) # 输出:bitarray('00110010') # 将第5位设置为False(0) ba[4] = False # 输出修改后的bitarray的值 print(ba) # 输出:bitarray('00100010') # 将bitarray转换为整数 num = int(ba.to01(), 2) print(num) # 输出:34 # 键入bitarray input_ba = bitarray.bitarray() input_ba.frombytes(b'&\x05') # 输出键入bitarray的值 print(input_ba) # 输出:bitarray('0010011000000101') # 将bitarray转换为字节串 bytes_str = input_ba.tobytes() print(bytes_str) # 输出:b'&\x05' # 创建一个bitarray来表示布尔值列表 bool_list = [True, False, True, False] bool_ba = bitarray.bitarray(bool_list) # 输出布尔值列表的bitarray版本 print(bool_ba) # 输出:bitarray('1010')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值