Python位备份以提高可读性(如果可能)

Python位备份以提高可读性(如果可能),python,bit-manipulation,Python,Bit Manipulation,我有三个二进制值组成一个字节,如下所示: mod reg r/m - - - - - - - - 将这三者相加的最佳方法是什么 目前我的做法是: MOD = 0b01 REG = 0b010 R_M = 0b100 MOD_REG_RM = MOD<<6 | REG<<3 | R_M >>> f'{MOD_REG_RM:>08b}' '01010100' 它是伪代码,但在所有位移位的情况下,其可读性比上述代码高得多。做这件

我有三个二进制值组成一个字节,如下所示:

mod    reg     r/m
- -   - - -   - - -
将这三者相加的最佳方法是什么

目前我的做法是:

MOD = 0b01
REG = 0b010
R_M = 0b100
MOD_REG_RM = MOD<<6 | REG<<3 | R_M
>>> f'{MOD_REG_RM:>08b}'
'01010100'

它是伪代码,但在所有位移位的情况下,其可读性比上述代码高得多。做这件事的最佳方法是什么?

PyPI上有和模块;这两种方法中的任何一种都会有帮助吗?在我看来,比特转换和/或插入是完全可读的。它经常出现在许多语言的代码中。另外,我不知道有什么更好的方法可以使用Python标准库来解决这个问题,而为这个问题安装PyPI模块似乎有些过分。@sabik您想举个例子说明如何使用它吗?我没有使用过或甚至没有听说过这些软件包。@samuelbrody1249您能否先阅读文档,然后就您觉得不可理解的内容提出具体问题?我发现
bitarray
特别适合您的需要。或者,您可以先制作部分字符串,例如
MOD='01'
REG='010'
R_M='100'
,然后执行
MOD_REG=MOD+REG+R_M
,然后执行
MOD_REG=int(MOD_REG,2)
使其成为一个整数。PyPI上有和模块;这两种方法中的任何一种都会有帮助吗?在我看来,比特转换和/或插入是完全可读的。它经常出现在许多语言的代码中。另外,我不知道有什么更好的方法可以使用Python标准库来解决这个问题,而为这个问题安装PyPI模块似乎有些过分。@sabik您想举个例子说明如何使用它吗?我没有使用过或甚至没有听说过这些软件包。@samuelbrody1249您能否先阅读文档,然后就您觉得不可理解的内容提出具体问题?我发现
bitarray
特别适合您的需要。或者,您可以先制作部分字符串,例如
MOD='01'
REG='010'
R_M='100'
,然后执行
MOD_REG=MOD+REG+R_M
,然后
MOD_REG=int(MOD_REG,2)
,使其成为一个整数。
MOD_REG_RM = [MOD + REG + R_M]
MOD = 0b01
...