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

Python位运算逆操作:如何从合并运算结果中拆分得到两个原始数值

逆操作实现方法

你只需要按高低8位拆分即可,逻辑和原运算完全对应:

  1. 提取低8位得到num2:用2^8 -1做掩码和结果做按位与,清空高8位的内容
  2. 提取高8位得到num1:把结果直接右移8位,自动抹掉低8位的内容

代码示例

mask = 2 ** 8 - 1
secret = 257

num1 = secret >> 8
num2 = secret & mask

print(num1) # 输出 1
print(num2) # 输出 1

原理说明

原运算本质是把两个8位整数打包成1个16位整数:

  • num1左移8位后占用了16位整数的高8位,num2通过掩码保留低8位
  • 合并后的257二进制为00000001 00000001,高8位对应第一个1,低8位对应第二个1,拆分时直接按位截取即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:06:03