检查两个数字在 L 到 R 范围内的位是否互补

17 Mar 2025 | 阅读 2 分钟

假设我们有两个非负数 x 和 y,以及两个值 l 和 r。我们必须确定这两个给定数字在 l 到 r 范围内的所有比特位是否互为补码。

在本文中,我们将学习如何确定两个数的 L 到 R 范围内的比特位是否互为补码。

示例

Check if bits in Range L to R of Two Numbers are Complement of Each other or Not

比特位从右到左编号,从最低有效位开始。

解决该问题的步骤概述如下。

  • 获取异或值 xor_value = x ^ y。
  • 确定异或值在 l 到 r 范围内的所有比特位是否都已设置。

上述策略的实现如下。

C++ 程序

输出

Yes
  • 时间复杂度将是 O(1)

因为它执行的是常量操作。

  • 辅助空间将是 O(1)

下一个主题C++ 大学管理系统