在Python中构建位字符串

在Python中构建位字符串,python,byte,bytecode,bit,Python,Byte,Bytecode,Bit,作为练习,我试图为一个自定义的虚拟体系结构实现一个汇编程序 我唯一不确定的是如何实际生成位。我的每一条机器指令都有2字节长 例如,假设我已确定需要生成以下字节码: 0100000100110001 在这种情况下,我一次构建一个块的指令,例如,前3位是操作码,然后是一些保留位,然后是一个标志等等 我认为将其构造为文本字符串是最容易的 如何将字符串(例如“010000010110001”)转换为相应的位字符串,然后直接将其写入文件,而不更改字节顺序 我想我可能可以使用ByteArray构造函数,但

作为练习,我试图为一个自定义的虚拟体系结构实现一个汇编程序

我唯一不确定的是如何实际生成位。我的每一条机器指令都有2字节长

例如,假设我已确定需要生成以下字节码:

0100000100110001
在这种情况下,我一次构建一个块的指令,例如,前3位是操作码,然后是一些保留位,然后是一个标志等等

我认为将其构造为文本字符串是最容易的

如何将字符串(例如“010000010110001”)转换为相应的位字符串,然后直接将其写入文件,而不更改字节顺序


我想我可能可以使用
ByteArray
构造函数,但我在文档中找不到任何合适的示例。

您可以尝试使用python struct将操作码写入字符串。它允许定义值的格式(int8、int16、int32等)。因此,只需将操作码和标志组合到2字节代码中,并使用uint16格式编写

import struct

outstring = ''

code = opcode << 13
code += flags << 10
code += reg1  << 5
code += reg2 
outstring += struct.pack('H',code)
导入结构
突出=“”
代码=操作码