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

使用位运算判断两个int256数任意一个为奇数的更快方案

答案

存在运算速度更快、gas消耗更低的实现,逻辑完全兼容你当前的需求。

你原有逻辑的本质是提取两个数的最低位(奇偶位)做异或运算,而异或运算的最低位仅由两个操作数的最低位决定,和高位无关,同时int256采用补码存储,正负值的最低位都可以直接表示奇偶性,因此可以简化为先对x、y整体做异或,再取最低位即可:

let z := and(xor(x, y), 1)

效率对比

  • 原有实现需要3次EVM运算:2次and + 1次xor
  • 优化后实现仅需要2次EVM运算:1次xor + 1次and

两者的输出结果完全一致,无需额外处理边界条件,所有int256取值范围内的输入都能正常得到正确结果。

内容的提问来源于stack exchange,提问作者Paul Razvan Berg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:24:00