gpt4 book ai didi

java - 给定一个数字 n 和两个整数 p1,p2,判断位置 p1 和 p2 的位是否相同。基于位置 p1、p2 和 1

转载 作者:太空狗 更新时间:2023-10-29 20:30:46 26 4
gpt4 key购买 nike

我一直在做一些小的代码测验,只是为了在毕业后 catch 我的编码,但这一次让我难堪。这是问题:

给定一个数 n 和两个整数 p1,p2 判断位置 p1 和 p2 的位是否相同。基于位置 p1、p2 和 1。

例子

22,3,2 为真,因为它是 0001 0110,因为 2 和 3 的位置相同。

我用一种方法解决了它,即将十进制转换为二进制,然后转换为字符串,并检查位置中的位是否相同,但我觉得有一种更简单的位操作方法,但我不太好用。我在想,如果我可以将这些位移到第一个位置并比较它们,我就能得到答案,但是当我将它们移到左移时我遇到了问题,因为它们刚刚溢出。

最佳答案

您可以将感兴趣的位移动到最低有效位置,然后使用 & 屏蔽所有其他位。

假设 p1p2 是从零开始的索引,从最低有效位开始计数:

bool same_bits = (((n >> p1) & 1) == ((n >> p2) & 1))

关于java - 给定一个数字 n 和两个整数 p1,p2,判断位置 p1 和 p2 的位是否相同。基于位置 p1、p2 和 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com