在我目前正在进行的作业中,我们需要与位矢量一起工作,但是我不确定如何在Python中做到这一点。他们应该能够从4位到20位。我以前从未使用过Bit Vector,但是我想一个人会创建您使用常规和/或/或/XOR操作来操纵的无符号字节的数组。

重要的限制 这是:我不能依靠 任何 除标准Python提供的图书馆外。

我想我知道如何使用8位unsigned字节的阵列在C中执行此操作:例如,将第18位零数组变成一个,我会做类似my_bit_array [3]&= 1 << 2之类的事情

但是,由于Python是动态键入的,并且没有内置的数组类型,我该如何以Pythonic的方式进行操作?

是否有可能(如何?)表达大小20的位矢量?我正在考虑制作24位 / 3个字节向量并忽略4位。

有帮助吗?

解决方案

图书馆 BitVector 是为此目的的纯派库库,应满足您指定的需求。

其他提示

以下是用于在没有内容的情况下导出列表的PowerShell代码。

$web = Get-SPWeb -Identity "SiteUrl"
$list = $web.Lists["ListName"]
$list.SaveAsTemplate("File_Name.stp", "List_Template_Title", 
"Description", $false);
.

比特雷 模块对布尔值有效地进行了操作。

我不认为目前这个问题有一个是版本的答案: http://community.office365.com/en-us/forums/154/t/74400.aspx

此工具说它将允许您迁移所有内容: http://www.metavistech.com/category/tools-office-365

然后在此期间,您可以执行以下操作,因为您迁移内容:

在Central Admin中,在场所,将MySite主机的位置更改为在线位置:应用程序管理>用户配置文件服务应用程序>我的网站设置>我的网站主机位置

这将将它们重定向到在线位置

,通过用户配置文件服务的用户权限关闭用户创建MySite的能力,对于ON的房屋

有点过时,但我将在这里留下另一个stdlib选项,只是为了进行比较。也很容易使用 CTYPES 模块。

例如:

是否有可能(如何?)表达大小20的位矢量?我正在考虑制作24位 / 3个字节向量并忽略4位。

class Simple(ctypes.LittleEndianStructure):
    _pack_ = 1
    _fields_ = [
                 ('one', ctypes.c_ubyte, 8),
                 ('two', ctypes.c_ubyte, 8),
                 ('three', ctypes.c_ubyte, 8)
               ]

s = Simple(0, 2, 256)
bytearray(s)        # bytearray(b'\x00\x02\x00')
s = Simple(0, 2, 255)
bytearray(s)        # bytearray(b'\x00\x02\xff')

class Simple(ctypes.BigEndianStructure):
    _pack_ = 1
    _fields_ = [
                 ('one', ctypes.c_ubyte, 8),
                 ('two', ctypes.c_ubyte, 8),
                 ('three', ctypes.c_ubyte, 8)
               ]

s = Simple(0, 2, 256)
bytearray(s)        # bytearray(b'\x00\x02\x00')
s = Simple(0, 2, 255)
bytearray(s)        # bytearray(b'\x00\x02\xff')

s.two |= 3
bytearray(s)        # bytearray(b'\x00\x03\xff')

或这样更直接的东西:

class bit_vector(Structure):
    _fields_ = [('bits', c_uint32, 24),
                ('unused', c_uint32, 8),
                ]

bv = bit_vector()
# turn on the 18th bit -- being explicit just to demo it
bv.bits |= int('000000000000000001000000', 2)
bin(bv.bits)   # 0b1000000

利用 结构 模块。

还有纯净的python python-bitstring (带有Python 3支持)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top