gpt4 book ai didi

algorithm - 给定一个二进制数,如何在 O(1) 时间内找到从右数第 n 个设置位?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:05 24 4
gpt4 key购买 nike

假设 x = 1110(12 月为 14),我想从右边找到第二个设置位,0100(12 月为 4)

再举一个例子,假设 x = 10110010(12 月为 178),我想要从右边开始的第 3 个设置位,即 00100000(12 月为 32)

如何找到它?有黑客吗?

最佳答案

从数字中减一将清除已设置的最低有效位,同时设置低于该位的位。与原始数字进行与运算将留下一个与原始数字相等的数字,但原始最低设置位清除。这个过程可以重复 N 次以产生一个数字,其中最低的 N 个设置位被清除。第 N 次迭代更改的位(如果有)将是原始设置中的第 N 个最低位。

关于algorithm - 给定一个二进制数,如何在 O(1) 时间内找到从右数第 n 个设置位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33481576/

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