字节操作Python

时间:2018-01-27 05:08:38

标签: python byte operation

我正在尝试解决字节操作:

0x25 ^ (0xFFFFFFFF << 1) = 0x87654321 * x

我试图找到x的值,使这个陈述成立。

1 个答案:

答案 0 :(得分:0)

表达式0x25 ^ (0xFFFFFFFF << 1)0x87654321分别只评估整数85899345552271560481

如果你想解决8589934555 == 2271560481 * x,那么你只需要分开。

# Reminder: in Python3, / will always output a float
x = (0x25 ^ (0xFFFFFFFF << 1)) / 0x87654321 # Output: 3.781512588746256

0x25 ^ (0xFFFFFFFF << 1) == 0x87654321 * x # Evaluates to True

您可能一直在思考这一点,请记住0x25只是十六进制符号的整数。这意味着,对于Python,它与编写37完全相同。

此外,^<<等操作也会返回整数,因此一旦获得输出的值,就没有什么可担心的了。初等代数仍然适用。