You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中对两个数值执行逻辑NAND运算?附示例

在Python中实现按位NAND运算

按位NAND的逻辑很直接:先对两个数做按位与运算,再对结果做按位取反。但要注意Python的整数是任意精度的,直接用~取反会得到负数(因为补码表示),所以需要结合对应位数的掩码来修正结果,确保得到我们想要的无符号整数。

针对你给出的示例,代码可以这么写:

# 定义输入值
num = 0xFF  # 二进制 0b11111111
mask = 0x5   # 二进制 0b00000101

# 执行NAND运算:先按位与,再取反,最后用8位掩码修正
nand_result = ~(num & mask) & 0xFF

# 输出结果
print(f"十六进制结果: {hex(nand_result)}")  # 输出 0xfa
print(f"二进制结果: {bin(nand_result)}")    # 输出 0b11111010

逻辑拆解

  1. 第一步num & mask:计算两个数的按位与,得到0x5(二进制0b00000101)
  2. 第二步~(num & mask):对与运算结果取反,Python中这会得到-0x6(因为补码机制)
  3. 第三步& 0xFF:用8位掩码0xFF和取反结果做按位与,把结果限制在8位无符号整数范围内,最终得到0xFA

如果需要处理其他位数的数值,只需要把掩码换成对应位数的全1值即可:比如16位用0xFFFF,32位用0xFFFFFFFF。

这种方式完全利用Python内置的按位运算符,比逐位循环高效得多,不用自己造轮子。

内容的提问来源于stack exchange,提问作者milnuts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:55:16