Skip to main content
 首页 » 编程设计

Python 代码——也许是十六进制

2025年05月04日17lyhabc

我正在查看一段代码并遇到了这些行:

1 & 0x44 
1 & 0x11 
1 & 0x85 
1 & 0x22 
1 & 0x20 

我已经在 Python 中运行它并看到数字在变化,但我不明白它在做什么。有人可以向我解释一下它在做什么吗?

谢谢

请您参考如下方法:

这里的&是一个按位运算符,这意味着查看二进制格式中涉及的数字以了解正在执行的操作更有意义。

因此,对于十进制的 65,将其转换为二进制得到“1000001”。

其他数字都是十六进制的,转换如下:

0x10 -> 10000 
0x08 -> 01000 
0x04 -> 00100 
0x02 -> 00010 
0x01 -> 00001 

如你所见,65 & 0x01的结果是1,实现方式如下:

  1000001      65 in binary 
& 0000001    0x10 in binary 
--------- 
  0000001    Giving 1 
--------- 

AND 的逻辑:

AND 
0 0 | 0 
0 1 | 0 
1 0 | 0 
1 1 | 1 

代码正在尝试确定是否已设置单个位。

关于 bitwise operations 的维基百科文章应该可以帮助您理解这个过程。