一个使用python轻松处理位域的库
项目描述
pybitfield
一个使用python轻松处理位域的库
要求
- 蟒蛇 3.6、3.7、3.8、3.9
安装
pip install pybitfield
用法
当您构造一个包含 5 个元素的位域时,请执行以下操作。
在这种情况下,最多可以存储 5 位信息。
除非另有说明,否则所有位均为 0。
from pybitfield import Bitfield, BitOrder
number_of_element = 5
bitfield = Bitfield(number_of_element)
如果要设置该位,请执行以下操作。
由于索引是从零开始的,因此运行此代码时存储的位域是01111.
这是大端的情况。
bitfield.set_bit(0)
bitfield.set_bit(1)
bitfield.set_bit(2)
bitfield.set_bit(3)
# Since the number of elements is 5 and the index is zero-based, a total of 5 index from 0 to 4 can be specified.
# bitfield.set_bit(5)
此代码删除第 1 位和第 3 位。
这个结果是00101
bitfield.remove_bit(1)
bitfield.remove_bit(3)
您可以使用is_bit()来确保已设置该位。
bitfield.is_bit(1) # return False
bitfield.is_bit(2) # return True
如果要将位域转换为列表类型,可以使用get_bit_list().
位域的索引和列表的索引是对应的。
0 转换为 False,1 转换为 True。
bitfield.get_bit_list()
# [True, False, True, False, False]
如果要反转位域,可以使用swap_bitfield().
参数表示位长度。
如果调用不带参数的方法,则位域中的元素数将应用于返回值的位长。
bitfield.swap_bitfield()
# 20
# 0b10100
bitfield.swap_bitfield(8)
# 160
# 0b10100000
bitfield.swap_bitfield(10)
# 640
# 0b1010000000
如果要将位域转换为字节类型,可以使用get_bitfield_bytes().
您可以使用BitOrder枚举器类来指定位顺序。
如果位域中的元素数量不是 8 的倍数,则将应用可以表示它的最小字节长度。
在这种情况下,位域中的元素数为 5,因此应用字节长度 1。
bitfield.get_bitfield_bytes(BitOrder.big)
# b'\x05'
# 0b00000101
bitfield.get_bitfield_bytes(BitOrder.little)
# b'\xa0'
# 0b10100000
创始人
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pybitfield-1.0.1.tar.gz
(9.1 kB
查看哈希)
内置分布
pybitfield-1.0.1-py3-none-any.whl
(8.4 kB
查看哈希)
关
pybitfield -1.0.1.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 0899c8cd8dc3d03c0288e337845d47f0eacf046de3af99c7f775a1fbe6f706cf |
|
| MD5 | c71b27164e0c9279a476072cff00d38a |
|
| 布莱克2-256 | 3558ba3d9ced2f73c3e8f95d5ee79b9c3e70de73567dd06b3e94654344872c31 |
关
pybitfield -1.0.1-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 9f0ea631bac0c89c18e0b8df57345fb4fa467b04f3109d6180bd9bb0818fe6b9 |
|
| MD5 | fa184ab7638e02a5dee32b6084cc2adc |
|
| 布莱克2-256 | 3f329f2d5360f6129fe2ddf3becb0d71adf4e469003e428f928b6a3ed8c573a3 |