gpt4 book ai didi

python - 在 Python 中使用二进制,拆分数字

转载 作者:太空狗 更新时间:2023-10-30 01:58:23 26 4
gpt4 key购买 nike

我有一个模块,它采用十进制格式的 2 X 8 位数字,具有特定的结构

每个数字必须以相同的 4 位开头 = 0011接下来是一个 8 位变量后跟忽略的 4 位,因此设置为 0000

所以计算16位数字就足够简单了

变量 number * 16 会将其向左移动 4 位,添加 12288 = 0011|000000000000 会得到我想要的结果。

所以如果我输入的数字是 19

19 X 16 + 12288 = 12592 = 0011000100110000

下一步是将其拆分为两个 X 8 位数字

00110001 | 00110000 = 49, 48

我如何在 python 中有效地从 12592 到 49,48。

从来没有在脚本中以二进制形式工作过,所以有点新。

干杯

最佳答案

要获得前 8 位,只需将其右移 8 位即可。

   0011000100110000 >> 8
== 00110001

要获得最后 8 位,用 0b11111111 屏蔽它,即 255

   0011000100110000
& 0000000011111111
-------------------
0000000000110000

代码示例:

>>> n = int("0011000100110000", 2)
>>> n
12592
>>> n >> 8, n & 255
(49, 48)

或者,您也可以只使用 divmod,但是 >>>& 似乎更快一些。

>>> divmod(n, 256)
(49, 48)

关于python - 在 Python 中使用二进制,拆分数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29177035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com